查找包含特定文本的标记并添加类

时间:2012-11-23 10:54:16

标签: jquery contains

我有以下HTML,我需要在<li><a>添加一个类,其中“图表”存在(所以不是第二行,而是第4行和第5行) 。我无法更改HTML的输出。

<div class="wp-submenu-wrap">
    <div class="wp-submenu-head">Charts</div>
    <ul>
        <li class="wp-first-item">
            <a class="wp-first-item" tabindex="1" href="admin.php?page=charts">Charts</a>
        </li>
        <li>
            <a tabindex="1" href="admin.php?page=add-chart">Add Chart</a>
        </li>
    </ul>
</div>

我尝试通过找到包含文本的<a>标记来做到这一点,但它无效。有人可以指点我正确的方向吗?感谢。

我尝试过的代码 -

$(document).ready(function(){

    if(pagenow === 'admin_page_edit-chart') {

        var page = $('.wp-submenu-wrap a:contains["Charts"]');

        page.addClass('current');
        page.parent('li').addClass('current');

    }

});

4 个答案:

答案 0 :(得分:3)

应该是:contains('text')。除此之外你的代码看起来很好。

答案 1 :(得分:3)

您的:contains()选择器无效。

变化:

a:contains["Charts"]

要:

a:contains("Charts")

http://jsfiddle.net/C8KVW/

答案 2 :(得分:2)

以下代码应该完成这项工作:

$(".wp-submenu-wrap a:contains('Charts')")
    .parent("li")
    .andSelf()
    .addClass("current");

答案 3 :(得分:2)

试试这个

    var page = $('.wp-submenu-wrap a:contains("Charts")');

    page.addClass('current');
    page.parent().addClass('current');