获取与Jquery匹配条件的第一个前一个元素

时间:2015-07-30 20:57:18

标签: javascript jquery dom

我有这个表,如何获得第一个具有.cep类的前导并使用Jquery获取此元素?

这是我的表:

<table>
    <tr class="cep"></tr>
    <tr class="ptype"></tr>
    <tr class="item"></tr>
    <tr class="cep"></tr> (I want to get this element)
    <tr class="ptype"></tr>
    <tr class="item"></tr>
    <tr class="item-here"></tr> (I'me here)
    <tr class="item"></tr>
</table>

有没有办法做到这一点:

$('tr.item-here').prevUntilFindThefirstMatchOf('tr.cep'); Get this element

请帮助

2 个答案:

答案 0 :(得分:4)

使用prevUntil()

&#13;
&#13;
console.log($('tr.item-here').prevUntil('tr.cep').last().prev());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
    <tr class="cep">cep</tr>
    <tr class="ptype">ptype</tr>
    <tr class="item">item</tr>
    <tr class="cep">cep</tr> 
    <tr class="ptype">ptype</tr>
    <tr class="item">item</tr>
    <tr class="item-here">item-here</tr>
    <tr class="item">item</tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:4)

我建议将prevAllfirst结合使用。 prevAll会过滤掉所有以前的兄弟姐妹,first只会抓住它遇到的第一个兄弟姐妹。

$('tr.item-here').prevAll('tr.cep').first();

var meh = $('tr.item-here').prevAll('tr.cep').first();

console.log($(meh).text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <tr class="cep"><td>This should not print in console</td></tr>
    <tr class="ptype"></tr>
    <tr class="item"></tr>
    <tr class="cep"><td>This should print in console</td></tr>
    <tr class="ptype"></tr>
    <tr class="item"></tr>
    <tr class="item-here"></tr>
    <tr class="item"></tr>
</table>