jQuery选择器

Lee*_*key 3 jquery jquery-selectors

我有一个相当简单的动态html结构的表,其中包含链接以及它将包含带链接的第二个表的可能性.我想更改主表中链接的html属性,但不是第二个.

我的结构:

<table>
<tr><td><a href="www.google.com">link</a></td></tr>
<tr><td><a href="www.google.com">link</a></td></tr>
<tr><td><a href="www.google.com">link</a></td></tr>
<tr><td><a href="www.google.com">link</a></td></tr>
<tr><td><a href="www.google.com">link</a></td></tr>
<tr>
    <td>
        <table>
            <tr><td><a href="http://stackoverflow.com">link</a></td></tr>
            <tr><td><a href="http://stackoverflow.com">link</a></td></tr>
            <tr><td><a href="http://stackoverflow.com">link</a></td></tr>
        </table>
    </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

例如,我想将"www.google.com"的所有href更改为"www.foo.com".我能够更改href属性,但我的选择器b/c有问题,有时候第二个表不存在.

我当前的选择器如下: $('table a').filter(':not(table:last a)')

我确信它不是最有效的方法,但它一直在工作,直到没有第二张桌子发挥作用的可能性.

Fel*_*ing 5

如果您的"主"表不在另一个表中,您可以这样做:

$('table a:not(table table a)')
Run Code Online (Sandbox Code Playgroud)

或等效地:

$('table a').not('table table a')
Run Code Online (Sandbox Code Playgroud)

更新:性能方面,帕特里克的答案要好得多.