使用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() {}
这似乎不起作用。想法?感谢
答案 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 强>