Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中jquery中的复选框_Javascript_Jquery_Html_Checkbox - Fatal编程技术网

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);