2016-11-30 85 views
0

我在html中有以下代码。我只想在我们点击其他li并将活动类添加到点击它的li时删除活动类。删除li上的类属性点击

<ul class="pagination" id="paginationUL"> 
    <li class="active"><a href="#">1</a></li> 
    <li onclick="javascript:selectThis()"><a href="#">2</a></li> 

我试图删除类第一,它不工作。请建议。

function selectThis() { 
    $('ul[class="pagination"] li[class="active"]').removeClass("active")); 
} 

编辑脚本,它工作。

回答

0

你可以写一行绑定到该菜单中的所有元素li$(this)选择器针对单击的元素起作用,而使用.siblings()则作用于所有其他子元素li

$('#paginationUL > li').click(function(){ 
 
    $(this).addClass('active').siblings().removeClass('active') 
 
})
.active { background: orange; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="pagination" id="paginationUL"> 
 
    <li class="active"><a href="#">1</a></li> 
 
    <li><a href="#">2</a></li> 
 
    <li><a href="#">3</a></li> 
 
</ul>

+0

谢谢@jmcgriz。 –

+0

欢迎,快乐编码。 – jmcgriz

+0

我不确定我可以在这里问另一个与此有关的问题。如何在删除或添加类之前获取当前活动li的值。我试过这种方式。 $(this).siblings()。find('[class =“active”]')。first().val()and $(this).siblings()。find('[class =“active”]' ).val()和$(this).siblings()。find(“active”).val(),全部说undefined。 –

1

您的选择不正确。使用#paginationUL[class="pagination"] li[class="active"]ul.pagination li.active#paginationUL li.active

+0

为什么'#paginationUL [类= “分页”]的Li [类= “活性”]'代替'#paginationUL li.active' – j08691

+1

何必指定一类'# paginationUL'?根据定义,应该只有其中之一。 – BenM

2

您的选择器不正确。您需要使用的ID(#)或类(.)选择:

$('#paginationUL li.active').removeClass("active"); 

不过,你最好不要使用侵入式的事件处理程序,并且相当做沿着以下线的东西:

$('#paginationUL > li').on('click', function() { 
    $(this).addClass('active').siblings('.active').removeClass('active'); 
}); 

后一个例子会将一类active应用于clicked元素,并将其从<ul>中的任何其他元素中移除。

+0

谢谢你BenM。这也工作。 –

1

您可以使用类似这样

$("#paginationUL li").click(function() { 
    $(this).toggleClass("active"); 
    $(this).siblings().removeClass("active"); 
}); 
1

如果你正在使用jQuery这应该这样做:

$('#paginationUL li').click(function(){ 
    $('#paginationUL li').removeClass("active"); 
    $(this).addClass('active'); 
});