如何查找不在数据属性中的所有元素

时间:2012-10-25 00:31:40

标签: javascript jquery underscore.js

使用jQuery / Underscore,给出以下列表。如何查找不属于.msg

的所有data-allow-html="true"元素
<ol>
    <li><div class="msg">message</div></li>
    <li data-allow-html="true"><div class="msg">message</div></li>
    <li><div class="msg">message</div></li>
    <li data-allow-html="true"><div class="msg">message</div></li>
    <li><div class="msg">message</div></li>
    <li data-allow-html="true"><div class="msg">message</div></li>
    <li><div class="msg">message</div></li>
    <li data-allow-html="true"><div class="msg">message</div></li>
</ol>

我目前有:

$('#mydiv').find('.msg').each(function() {}

并尝试过:

$('#mydiv').find('li').not('data-allow-html="true"').find('.msg').each(function() {}

这似乎不起作用。想法?感谢

2 个答案:

答案 0 :(得分:2)

您可以使用以下内容获取<li>中的所有#mydiv,然后检查包含该属性的not(),然后查找每个.msg

$('#mydiv li').not('[data-allow-html="true"]').find('.msg').each(function() {
    // your code
});​

答案 1 :(得分:1)

在您的代码 not('data-allow-html="true"')中 应该是not('[data-allow-html="true"]') .. //缺少 []

你也可以这样试试

 $('li').not('[data-allow-html]').find('.msg').each(function() {

       $(this).css('color', 'orange')
        // Your code here
 });

// OR

$('li:not([data-allow-html])').find('.msg').each(function() {

});

<强> Check FIDDLE