在下面,我想删除类“item1”并将类item2添加到maindiv。以下代码无效。代码有什么问题,如何在maindiv中包含item2?
HTML:
<div class="item2"><a href="#" id="item2">item2</a></div>
<div class="maindiv">
<div class="item1"> <a href="#" id="item1">item1</a></div>
</div>
jQuery的:
if (selection) {
if ($('.maindiv').hasClass('item1')) {
$('.maindiv').removeClass('item1').addClass('item2');
}
}
答案 0 :(得分:2)
在您的示例中,.maindiv
没有名为item1
的类,它有一个
拥有该课程的孩子。你正在测试它是否有它。
您可能希望修改为:
if($('.maindiv > div').hasClass('item1')) {
$('.maindiv > div')
.removeClass('item1')
.addClass('item2');
}
或者
if($('.maindiv .item1').length > 0) {
$('.maindiv .item1')
.removeClass('item1')
.addClass('item2');
}
......无论你发现哪个更具可读性。
答案 1 :(得分:1)
你必须要像
那样瞄准内部div $(document).ready(function() {
if(selection) {
$('.maindiv .item1').removeClass('item1').addClass('item2');
}
});
答案 2 :(得分:0)
.hasClass()
函数检查它被调用的元素是否具有该类(在您的情况下它没有)。它不会检查这些元素是否包含具有该类的元素。
<div class="item1">
和<div class="item2">
是元素,而不是类; item1
和item2
是这些元素的类。您似乎对类是什么以及.hasClass()
,.addClass()
和.removeClass()
函数的作用感到困惑,因此我建议您回过头来介绍基础知识。
答案 3 :(得分:0)
$('#maindiv').find('item1')
而且你可以把它好运并祝你好运
答案 4 :(得分:-1)
使用id比较器来获得更好的解决方案,如
ITEM1<div class = "maindiv">
<div id="test" class = "item1" > <a href="#" id="item1">item1</a> </div>
</div>
if(selection)
{
if ( $('#test').hasClass('item1') ) {
$('#test').removeClass('item1').addClass('item2');
}
}