所以我有这张桌子。
<table id="mytable">
<tr>
<td><input type="text"/></td>
<td><input type="text"/></td>
<td><input type="checkbox"/></td>
</tr>
<tr>
<td><input type="text"/></td>
<td><input type="text"/></td>
<td><input type="checkbox"/></td>
</tr>
</table>
现在,我想从第二个文本字段中提取用户输入,但仅针对已选中复选框的行。我可以选择并打印使用此jQuery代码检查的复选框。
var x = $('#mytable td input:checked');
$.each(x, function(key, value) {
console.log(value)
});
我不知道如何从这个对象获取输入字段数据,我尝试使用.children()但是导致了错误。我对jQuery有非常基本的了解。请帮忙。
答案 0 :(得分:0)
您也可以使用has选择器
$('#mytable td:has(input:checked)').find( "input[type='text']:last" ).each( function(){
console.log($(this).val());
} );
或者可能只是上面提到的parent()的prev()
$('#mytable td input:checked').each(function() {
console.log($(this).parent().prev().find("input").val());
});
答案 1 :(得分:0)
您可以找到带有检查输入的tr,然后在第二个td中找到输入,如
$('button').click(function() {
$('#mytable tr:has(input:checked) td:nth-child(2) input').each(function() {
snippet.log(this.value)
});
})
&#13;
<script src="https://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="mytable">
<tr>
<td>
<input type="text" />
</td>
<td>
<input type="text" />
</td>
<td>
<input type="checkbox" />
</td>
</tr>
<tr>
<td>
<input type="text" />
</td>
<td>
<input type="text" />
</td>
<td>
<input type="checkbox" />
</td>
</tr>
</table>
<button>Print</button>
&#13;