Jquery在if中检测元素类型

时间:2015-06-02 16:09:35

标签: javascript jquery

我有以下JQuery http://jsfiddle.net/gg9xnkqq/1/

$(document).ready(function () {
    if( $('.one').hasClass('one') ){
        $('.one').css({ 'color' : '#f00' });
    }
});

和这个HTML

<div class="one">dfv</div>
<div class="one">dfv</div>
<div class="one">dfv</div>
<div class="one">dfv</div>
<div class="one">dfv</div>
<div class="one">dfv</div>
<div class="one">dfv</div>
<div class="one">dfv</div>
<span class="one">oiuoiuioou</span>

在if语句中,如何检测类one的元素类型是否不是body

因此,所有不是body且具有某个类的元素都会更改其类。

3 个答案:

答案 0 :(得分:3)

由于只有一个实体,您可以按照以下方式选择元素$('body .one'),这样就可以选择体内具有类one的所有元素。

答案 1 :(得分:1)

使用jQuery not()

Comparator<Candidate> cmp = new CandidateComparator();
TreeSet<Candidate> ts1 = new TreeSet<Candidate>(cmp);
... populate ts1 ...
map.put ("someKey1", ts1);
TreeSet<Candidate> ts2 = new TreeSet<Candidate>(cmp);
... populate ts2 ...
map.put ("someKey2", ts2);    

这将

  

从匹配元素集中删除元素。

因此,不需要$('.one').not('body').css({ 'color' : '#f00' });

答案 2 :(得分:1)

您可以使用if

not()

$('.one').not('body').css({ 'color' : '#f00' });

:not()

$('.one:not("body")').css({ 'color' : '#f00' });

filter()

或者:

$('.one').filter(':not("body")').css({ 'color' : '#f00' });

需要做的是:

$('.one').filter(function () {
    return $(this).not('body');
}).css({ 'color' : '#f00' });

因为如果元素没有if( $('.one').hasClass('one') ){ $('.one').css({ 'color' : '#f00' }); } 类,那么它们就不会被包含类名one的选择器选中。

参考文献: