[Javascript] jQuery來查找所有匹配表達式的元素


Answers

據推測你是在一個onclick處理程序中這樣做,所以你有權訪問被點擊的元素。 我要做的是先做一次,看看它是否在同一水平。 如果沒有,那麼我會做一個父()。prevAll()來獲取父元素的以前的兄弟姐妹,然後遍歷這些向後,檢查他們的內容為所需的元素。 繼續上去DOM樹,直到找到你想要的或者命中DOM的根。 這是一個通用算法。

如果你知道它是在一個表內,那麼你可以簡單地得到包含被單擊的元素的行,並從該行的表中反向遍歷表,直到找到包含所需元素的行。

我不認為有一種方法可以在一個(鍊式)陳述中進行。

Question

使用jQuery, 如何匹配DOM樹中當前元素之前的元素? 使用prevAll()只匹配以前的兄弟姐妹。

例如:

<table>
    <tr>
        <td class="findme">find this one</td>
    </tr>
    <tr>
        <td><a href="#" class="myLinks">find the previous .findme</a></td>
    </tr>
    <tr>
        <td class="findme">don't find this one</td>
    </tr>
</table>

在我的具體情況中,我將在點擊鏈接之前搜索第一個 .findme元素。




我通常編號元素(1,2,3 ..)(rel =“number”),所以然後我使用這個代碼給所有以前的元素的類:

var num = $(this).attr("rel");

for (var i = 1; i<=num; i++)
{
    $('.class[rel="'+i+'"]').addClass("newclass");
}