Javascript 选中jquery中的复选框
这是我当前的代码。我想做的事情如下 如果Javascript 选中jquery中的复选框,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,这是我当前的代码。我想做的事情如下 如果json[i].enabled为true,则需要选中相应的复选框。如果没有,请将其留空 function createTable(json) { var element = ""; var i; for (i = 0; i < json.length; i++) { element = element + '<tr><
json[i].enabled
为true,则需要选中相应的复选框。如果没有,请将其留空
function createTable(json) {
var element = "";
var i;
for (i = 0; i < json.length; i++) {
element = element
+ '<tr><td><input type= "checkbox"/></td><td>'
+ json[i].a_id + '</td><td>' + json[i].name + '</td><td>'+ json[i].enabled
+ '</td></tr>';
if(json[i].enabled== "TRUE"){
$('checkbox').prop('checked', true);
}
}
//Had forgotten to add this before.
element = element + '</tbody>';
$('#dataTable > tbody').remove();
$("#dataTable").append(element);
}
那么,我该怎么做呢?如何访问循环中的特定复选框
谢谢 尚未在DOM中创建checbox元素。所以你必须把html放在第一位。然后使用
input[type="checkbox"]
以匹配实际的复选框元素。最后,您可能希望使用此选择器仅获取表最后一行中的最后一个复选框:
mytable tbody tr:最后一次输入[type=“checkbox”]
因此,您有以下代码:
function createTable(json) {
var i;
for (i = 0; i < json.length; i++) {
// construct the html
element = '<tr><td><input type= "checkbox"/></td><td>'
+ json[i].a_id + '</td><td>' + json[i].name + '</td><td>'+ json[i].enabled
+ '</td></tr>';
// put the html in the page
$('#mytable tbody').append(element);
if(json[i].enabled== "TRUE"){
// get the last inserted line in the table and check the checkbox
$('#mytable tbody tr:last input[type="checkbox"]').prop('checked', true);
}
}
}
函数createTable(json){
var i;
for(i=0;i
完整示例:
var $table=jQuery('<table></table>');
for (i = 0; i < json.length; i++) {
var $tr=jQuery(
'<tr><td><input type= "checkbox"/></td><td>'
+ json[i].a_id + '</td><td>' + json[i].name + '</td><td>'+ json[i].enabled
+ '</td></tr>');
if(json[i].enabled== "TRUE"){
$tr.find('input["checkbox"]').prop('checked', true);
}
$table.append($tr);
}
$jQuery('body').append($table);
var$table=jQuery(“”);
for(i=0;i
使用字符串连接和三元运算符:
'<tr><td><input type="checkbox"' + ( json[i].enabled== "TRUE" ? ' checked' : '' ) + '/></td><td>'
“”
试试这个:
$('input[type="checkbox"]:eq(i)').prop('checked', true);
什么是
$('checkbox')
?它应该是$('input[type=“checkbox”]”)
或$('.checkbox')
,即使这样,它也会检查每个复选框,而不仅仅是您想要的复选框——尽管如果您想要的复选框是'element'字符串中的复选框,它在DOM中无论如何都不存在。它正在工作,但我得到了每一行的重复。这很奇怪,这是不可能的。尝试在代码中添加一些“console.log()”,这是一个实现错误,因为这“是”处理这些情况的有效方法,我自己也在代码中使用它。(调用$table.append($tr)两次?)。我正在使用ajax调用,它被调用了两次。这就是为什么我在for循环外部包含DOM元素,以删除现有元素并重新添加连接的字符串。我不确定为什么会发生这种情况。这里是我的整个代码的链接,如果你能帮我修复代码的话。
'<tr><td><input type="checkbox"' + ( json[i].enabled== "TRUE" ? ' checked' : '' ) + '/></td><td>'
$('input[type="checkbox"]:eq(i)').prop('checked', true);