之前我使用过hasClass方法,但我有一个报告为不存在的场景,尽管如果我输出元素.html()它清楚地显示该类正由 item 使用和其他班级一样。
该类所属的元素也被动态写入屏幕。我有什么想法吗?
$('.myList').each(function (index, item) {
// Check marked as complete
if (!$(item).hasClass('complete')) {
// Not complete
alert('not complete!' + $(item).html());
completeFlag = false;
return false;
}
});
html输出:
<li id="myid" class="class1 class2 complete">some text</li>
答案 0 :(得分:3)
我猜您正在查看列表,您要查看列表项。
我认为你在做什么的例子:
HTML:
<ul class="myList">
<li>This is not complete</li>
<li>Nor this</li>
<li class="class1 class2 complete">But this is</li>
<li>And this isn't</li>
</ul>
JavaScript的:
$('.myList').each(function (index, item) {
// Check marked as complete
if (!$(item).hasClass('complete')) {
// Not complete
display('Item not complete: ' + $(item).html());
}
else {
// Is complete
display('Item IS complete: ' + $(item).html());
}
});
Live copy(不起作用)
以下是检查项目:更改
的方法$('.myList').each(function (index, item) {
为:
$('.myList li').each(function (index, item) {
// ^--- Note that we're now looping the
// list *items*, not the list
答案 1 :(得分:2)
.hasClass()
检查与您的选择器匹配的特定元素。您似乎在考虑在元素内搜索以查看该类是否在那里使用。这不是它的工作原理。
答案 2 :(得分:1)
你的html中的子元素之一是否有类但实际项目本身没有?我相信.hasClass()
仅确定实际元素本身是否已应用css类。