使用prevUntil jquery查找pre html元素

时间:2015-01-29 11:59:59

标签: javascript jquery html

当用户点击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>

1 个答案:

答案 0 :(得分:1)

如果我的理解是正确的那么

&#13;
&#13;
//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;
&#13;
&#13;