1

使用 jQuery / Underscore,给出以下列表。如何找到.msg不在 li w 内的所有元素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() {}

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

4

2 回答 2

2

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

$('#mydiv li').not('[data-allow-html="true"]').find('.msg').each(function() {
    // your code
});​
于 2012-10-25T00:35:22.593 回答
1

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

你也可以这样试试

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

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

//或者

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

});

检查小提琴

于 2012-10-25T00:36:31.267 回答