Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 在每个选择复选框中查找第一个td_Javascript_Jquery_Html_Dom_Checkbox - Fatal编程技术网

Javascript 在每个选择复选框中查找第一个td

Javascript 在每个选择复选框中查找第一个td,javascript,jquery,html,dom,checkbox,Javascript,Jquery,Html,Dom,Checkbox,我的表格如下: <table id="testTable" class="mainTable"> <thead> <tr> <th>Title</th> <th> Select All <input type="checkbox" id="select_all">

我的表格如下:

<table id="testTable" class="mainTable">
    <thead>
        <tr>
            <th>Title</th>
            <th>
                Select All
                <input type="checkbox" id="select_all">
            </th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Cell 1</td>
            <td><input type="checkbox" class="checkbox"></td>
        </tr>
        <tr>
            <td>Cell 2</td>
            <td><input type="checkbox" class="checkbox"></td>
        </tr>
        <tr>
            <td>Cell 3</td>
            <td><input type="checkbox" class="checkbox"></td>
        </tr>
        <tr>
            <td>Cell 4</td>
            <td><input type="checkbox" class="checkbox"></td>
        </tr>
    </tbody>
</table>
$("#testTable tr").each(function() {
    firsttd += $(this).find("td:first").html() + "\n";
});

但是,我需要修改它,以便我的JS代码只获得选中复选框行的第一个
td
元素。

这就是您试图实现的目标吗

$("#testTable tr").each(function(){
    firsttd += $(this).find('input[type="checkbox"]:selected').parent().html()+"\n";
});

您只需使用以下选项直接在JQuery选择器中选择复选框:


您可以直接在选择器上添加条件,如:

$("#testTable :checkbox:checked").each(function() {
    firsttd += $(this).closest('tr').find("td:first").html() + "\n";
});
或者,如果您真的需要循环,并且因为您使用的是jQuery,那么您可以使用
.is(':checked')
比如:

if ( $(this).find(':checkbox').is(':checked') ) 
{
     firsttd += $(this).find("td:first").html() + "\n";
}
希望这有帮助

var firsttd=”“;
$(“#testTable:复选框:选中”)。每个(函数(){
firsttd+=$(this).closest('tr').find(“td:first”).html()+“\n”;
});
console.log(firsttd)

标题
全选
第1单元
第2单元
第三单元
第4单元

获取选中复选框的第一个td

var elems=$(“#testTable tr td input[checked]”);
var str=“”;
对于(var i=0;i请使用
$(this.find(“:checkbox”).is(“:checked”)尝试此代码。

$(文档).ready(函数(){
$(此)。单击(函数(){
var firsttd=“”;
$(“#testTable>tbody>tr”)。每个(函数(){
if($(this).find(':checkbox').is(':checked'))
firsttd+=$(this.find(“td:first”).html()+“\n”;
});
console.log(firsttd);
});
});

标题
全选
第1单元
第2单元
第三单元
第4单元

查找复选框检查是否选中该复选框,如果选中该复选框,则在变量中查找其父变量的第一个td值

var firsttd='';
$(“#testTable tbody tr td”)。每个(函数(){
if($(this).find('input[type=checkbox]')是(“:checked”))
firsttd+=$(this.parent('tr').find(“td:first”).html()+“\n”
});
console.log(firsttd);

标题
全选
第1单元
第2单元
第三单元
第4单元

Fiddle

谢谢3Dos,但不,基本上,如果选中该行的复选框,找到该行的第一个td对不起,但我认为这对多个复选框不起作用。@ZakariaAcharki:回答它以获得选中复选框的第一个td我不认为OP要求的是什么,否则为什么循环和
+=
…@ZakariaAcharki:好的,找到了,hanks@Zakaria,这正是我要找的。只需选择行的第一个td,只有复选框被选中。
if ( $(this).find(':checkbox').is(':checked') ) 
{
     firsttd += $(this).find("td:first").html() + "\n";
}
$(document).ready(function() {
  var firsttd = "";
  $("#testTable tr td input:checkbox:first-child:checked").each(function()   
  {
     firsttd += $(this).parent().parent().find("td:first").html() + "\n";
  });
  console.log(firsttd);
});