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