如何选择包含和添加类的元素

时间:2014-01-17 12:18:03

标签: javascript jquery html

我需要将一个类添加到多个元素中,我想通过jQuery实现它,但我是菜鸟,我不知道如何选择内容为nsbp的元素; 。情况就是这样:

  <ul>
       <li><a href="#" target="_blank"><b>Example</b> <br><span>Example Description</span></a></li>
       <li class="spacer">&nbsp;</li>
       <li><a href="#" target="_blank"><b>Example</b><br><span>&nbsp;</span></a></li>
       <li class="spacer">&nbsp;</li>
       <li><a href="#" target="_blank"><b>Example</b><br><span>&nbsp;</span></a></li>
       <li class="line2">&nbsp;</li>
  </ul>

请帮忙!

5 个答案:

答案 0 :(得分:7)

可能是这样的:

$("span").filter(function(){
    return $(this).html().match(/&nbsp;/) !== null;
}).addClass("some-class");

或者可能是这样的:

// http://en.wikipedia.org/wiki/Non-breaking_space
// In Unicode, [the non-breaking space] is encoded
// as U+00A0 (HTML: &#160; &nbsp;)
$("span:contains('\u00a0')").addClass("some-class");

答案 1 :(得分:0)

如果您想要所有具有这些特定类的节点:

// Select all the nodes that have either the class "spacer" or the class "line2"
var elements = $('.spacer, .line2');
// Add another class
elements.addClass('newClass');

如果您想要所有内容为&nbsp;的节点,那么您应该使用contains选择器或filter,正如其他答案所说,但如果您不需要(或者您可以更改HTML以使&nbsp;的所有节点都具有特定的类),然后按类选择更高效,更简单。

答案 2 :(得分:0)

像这样:

$("elementYouWantAddClass").hasClass("yourClassCss"))

答案 3 :(得分:0)

$(window).ready(function(){
    $('li').each(function(){
        if($(this).html()=="&nbsp;") {
            $(this).addClass('css_class_name');
        }   
    });
});

答案 4 :(得分:0)

试试这个

$("ul li").not(':has(a)').addClass('classname');

请忽略上述内容并尝试以下代码段。

$('span').filter(function () {
    return $(this).html().indexOf('&nbsp;') > -1;
}).addClass('yourClass');

DEMO