我有一个表,表的每一行都包含一个输入字段和一个输入按钮。 我正在寻找更简单的方法来选择所有"输入字段"除了当前行""输入字段"点击"输入按钮"每一行。 所有输入字段都包含相同的名称,行是动态生成的,不受限制。
示例Html:
<table>
<tr>
<td><input type="text" name="name[]" value="Apple "></td>
<td><input type="button" onclick="restOf(this)" value="Get Value"></td>
</tr>
<tr>
<td><input type="text" name="name[]" value="Banana "></td>
<td><input type="button" onclick="restOf(this)" value="Get Value"></td>
</tr>
<tr>
<td><input type="text" name="name[]" value="Orange "></td>
<td><input type="button" onclick="restOf(this)" value="Get Value"></td>
</tr>
</table>
我的js - (使用&#34; not()&#34;和&#34;最近的()&#34;功能)
<script>
function restOf(obj){
var selected = '';
$("input[name='name[]']").not($(obj).closest("input[name='name[]']")).each(function(){
var value = $(this).val();
selected += value;
});
alert(selected);
}
</script>
预期结果:
If clicked Apple row's "Get Value" button = "Banana Orange"
If clicked Banana row's "Get Value" button = "Apple Orange"
If clicked Orange row's "Get Value" button = "Apple Banana"
答案 0 :(得分:0)
最接近检查传递的选择器对元素本身及其祖先。在你的情况下,文本输入是&#34;堂兄&#34;按钮(按钮父级的兄弟的孩子),而不是祖先。
所以尝试用not()方法替换put:
$(obj).closest('td').siblings().children()