当用户点击span元素时,我必须在表格的前一行中搜索第一个输入元素,并返回包含td内输入元素的第一行的编号。例如,span位于表的第四行,第一个输入元素位于表的第二行。在这种情况下,当用户点击span元素时,我必须返回2。我可以搜索以找到前一行中的第一个输入元素吗?
<script>
$("span").click(function(){
$(this).parent().parent().prevUntil("tr > td:nth-child(1)>input").css({"color":"red"});
</script>
<table>
<tr>
<td><input></input>11</td>
<td>12</td>
</tr>
<tr>
<td>21<input></input></td>
<td>22</td>
</tr>
<tr>
<td>31</td>
<td>31</td>
</tr>
<tr>
<td><span>click</span></td>
<td>42</td>
</tr>
</table>
答案 0 :(得分:1)
如果我的理解是正确的那么
//dom ready handler
jQuery(function($) {
$("span").click(function() {
var $tr = $(this).closest('tr').prevAll("tr:has(input)").first();
alert($tr.index() + 1)
$tr.css({
"color": "red"
});
});
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr>
<td><input/>11</td>
<td>12</td>
</tr>
<tr>
<td>21<input/></td>
<td>22</td>
</tr>
<tr>
<td>31</td>
<td>31</td>
</tr>
<tr>
<td><span>click</span></td>
<td>42</td>
</tr>
</table>
&#13;