# JS 取得無ID的td或td內部欄位 狀況: 有一個需求要更改乘載人數,相對險種的保額人數跟著改變,其中保額的欄位在table中的td內,是一個input欄位 原程式碼裡用change事件當觸發點(部分if判斷為其他需求判斷可以忽略),可直接從trList開始看 ```javascript= function wpasldChange(monitorInput1, monitorInput2){ $(monitorInput1).on("change", function() { var calInsMap = getCalInsMap(); var kininsArr = ['53', '55', '5B', '5K', '5P']; var keyArr = Object.keys(calInsMap); var wpasld = $(monitorInput1).val();// 乘載人數 var wpasun = $(monitorInput2).val();// 乘載單位 // console.log(wpasld + wpasun); if(wpasun =='P'){ for(var i = 0; i < keyArr.length-1;i++){ if(kininsArr.includes(keyArr[i])){ var trList = $('#tbody').find('tr'); // console.log(trList); for(var j = 0; j < trList.length -1; j++){ var trId = trList[j].id; var kinins = getTableTdVal(trId , 3)[0]; if(!checkIsNullSpace(kinins)){ var insType = kinins.slice(1,3); } if(keyArr[i] == insType){ var td5 = $('#' + trId).closest('tr').find('td:eq(5)').find("input"); if(!checkIsNullSpace(td5)){ var totpeono = td5.val(wpasld-1); // console.log(td5.val()); } } } } } } }); } ``` 以上var trList = $('#tbody').find('tr')這段會將id = tbody的table中各個tr取出之後利用for迴圈取出每一行tr 而目前table內部為動態生成僅有table和tr有id,裏頭各個td並無設定id ```javascript=22 if(keyArr[i] == insType){ var td5 = $('#' + trId).closest('tr').find('td:eq(5)').find("input"); if(!checkIsNullSpace(td5)){ var totpeono = td5.val(wpasld-1); } } ``` 當我要抓第六格時 var td5 = $('#' + trId).closest('tr').find('td:eq(5)').find("input"); eq內為索引值,並在後面再加上一個find去找td內部的input 新增下面一個狀況 ```javascript var td4Input = td4.find("input"); if(td4Input.length > 1 && checkWpasld){ td4Input[1].value = td4Input[0].value*(wpasld-1);//更改人數保額金額重新計算 }else if(checkWpasld){ td4Input.val(td4Select.val()*(wpasld-1)/10000);//更改人數保額金額重新計算 } ``` td4為一個table內的一格,取法等同於前面程式td5 for某些狀況下td4內可能有1~多個input欄位 當我要取input的值會使用.value而不是.val(),例如:td4Input[1].value ###### tags: `JS`,'table'
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up