jQuery 选择器

标签 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>

例如,我想将“www.google.com”的所有hrefs更改为“www.foo.com”。我可以更改 href 属性,但我的选择器有问题,因为有时第二个表不存在。

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

我确信这不是最有效的方法,但它一直有效,直到没有第二张 table 发挥作用为止。

最佳答案

如果您的“主”表不在另一个表内,您可以这样做:

$('table a:not(table table a)')

或等效的:

$('table a').not('table table a')

更新:性能方面,Patrick's answer好多了。

关于jQuery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588832/

相关文章:

javascript - jQuery/CSS - 将固定添加到滚动元素并在到达元素末尾时将其删除

javascript - 如何创建一个添加带有 HTML 标签和类的字符串的按钮?

javascript - "Cannot read property ' id ' of undefined"解析在工厂中声明的数组时

jQuery 通过多个 css 类选择一个元素

javascript - 使用 jQuery 匹配动态添加的事件(作为属性)

javascript - 如何选择一个类而不是其内部元素?

javascript - javascript 中的条件基于当前显示的页面

javascript - jQuery 动态对齐

javascript - Bootstrap 粘性导航栏在页面重新加载时消失

jQuery:选择给定类的所有元素,特定 Id 除外