获取table内的checkbox的同一行属性值无法获取到input框里的值
想要获取页面展示的数据并存为一个List集合,但无法获取到input属性中的值
前端html里面的代码(grade为一个input框,输入后才有数据)
let list = json.data
for (let i = 0;i < list.length;i++){
let tr = '<span class="hljs-tag"><<span class="hljs-name">tr</span>></span>\n' +
'<td><input name="snos" value="#{sno}" type="checkbox" onclick="showCol()" class="ckitem" /></td>\n' +
'<td>#{sno}</td>\n' +
'<td>#{sname}</td>\n' +
'<td><input id="grade" name="grade" type="text" placeholder="成绩:"></td>\n' +
'</tr>';
}
前端js代码
function showCol(){
var checked = $("input[name='snos']:checked");//选中的复选框
//循环被选中复选框的长度
for (i = 0; i < checked.length; i++) {
//创建一个对象
var obj = {};
//获取复选框选中的总行数里的i行
var row = $("input[name=snos]:checked").parent("td").parent("tr")[i];
//children获取的是子元素 []指要获取的第几个子元素 innerHTML取其html文本
obj["sno"] = row.children[1].innerHTML;
obj["sname"] = row.children[2].innerHTML;
//请问怎么获取grade的值?是一个input框,row.getAttribute()方法获取不了
console.log(row.children[1].innerHTML, row.children[2].innerHTML, row.getAttribute("grade"))
//将对象存进数组
array.push(obj);
}
}