我试图检查<li> </li>
标记中是否没有类标记。
例如,如果我有这个:
<li class="menu...."> words </li>
我想忽略它。但是,如果我有这个:
<li> words </li>
我想用它。
我目前所拥有的是:
$("li").each(function() {
if ($(this).classList.contains('') {
do function
}
})
然而,这不起作用 - 我将如何做到这一点?
提前致谢
答案 0 :(得分:6)
$('li:not([class])');
这将选择所有li
元素,而不选择任何类。您也可以将[class]
替换为特定类,或使用hasClass
。
答案 1 :(得分:4)
你可以这样做:
$("li:not(.menu)").whatever();
这不是最快的方式;这样做可能会更快:
$("li").filter(function() { return !$(this).hasClass("menu"); }).whatever()
如果您要对 no 类的<li>
元素进行操作,请 编辑,然后只需检查.className
属性:
$("li").filter(function() { return !$(this).prop("className"); }).whatever()
但是,我认为这不是一个好的编码模式。它很脆弱,因为它依赖于您页面的任何未来更改,其目的与您现在正在做的事情完全无关 not 涉及添加类。你最好明确检查你不感兴趣的特定类。
就像,也许3个月后,有人决定所有关于企鹅的清单项目都是黑白的。然后,将“penguin”类添加到所有<li>
个元素中。如果你不记得你现在正在做的这种改变,那么突然之后功能就会被打破。
答案 2 :(得分:1)
答案 3 :(得分:0)
classList
仅适用于Element
个实例,而不适用于jQuery对象。
$("li").each(function() {
if (this.classList.length === 0) {
do function
}
})