我正在尝试从列表中删除具有特定ID的.hideme类 - click事件在另一个列表中。根据您单击的UL.tab,显示或删除相应的ul.lineup类.hideme。 HTML看起来像这样:
<ul class="tab">
<li id="0">
<a href="#">26/08/2011</a>
</li>
<li id="1">
<a href="#">27/08/2011</a>
</li>
<li id="2">
<a href="#">28/08/2011</a>
</li>
</ul>
<ul id="0" class="lineup hideme">
<li>...</li>
</ul>
<ul id="1" class="lineup hideme">
<li>...</li>
</ul>
<ul id="3" class="lineup hideme">
<li>...</li>
</ul>
答案 0 :(得分:1)
首先修复一些HTML / CSS错误。 HTML / CSS中的ID值不能以数字开头。另请注意,整个页面中只能有一个具有给定id值的对象。你有重复。那样不行。在使用这些ID的任何选择器操作可靠之前,您必须修复这两个问题。
如果您有一个ID,并且想要从该特定对象中删除一个类,则可以使用:
$("#myID").removeClass("classToRemove");
如果您尝试从该ID的所有后代中删除该类,则可以使用此:
$("#myID .classToRemove").removeClass("classToRemove");
这将创建一个选择器对象,其中包含具有classToRemove的所有myID后代,然后从每个后代中删除它。
答案 1 :(得分:1)
您可以删除id
并简单地依赖元素的索引:
$('.tab li a').click(
function(){
i = $(this).closest('li').index();
$('ul.lineup').eq(i).toggleClass('hideme');
return false;
});
参考文献:
答案 2 :(得分:0)
$("#certainId").removeClass("className");
上面显示的代码也有两个错误:
页面上不应包含多个特定ID。例如,拥有两个#foo
的ID将是无效的HTML。
ID和类不应以数字开头。
答案 3 :(得分:0)
尝试:
$("ul.tab > li > a").click(function ()
{
$("ul#" + $(this).parent().attr('id')).removeClass("hideme");
}
另外,正如Shaz所说,你不能拥有重复的ID,或者以数字开头的ID。
答案 4 :(得分:0)
此方法可以帮助您,但您应该考虑ID应该是唯一的。
$('ul.tab a').click(function(){
$('ul#'+this.parent().attr('id')).toggleClass('hideme');
});
答案 5 :(得分:0)
<ul class="tab">
<li id="li_c0">
<a href="#">26/08/2011</a>
</li>
<li id="li_c1">
<a href="#">27/08/2011</a>
</li>
<li id="li_c2">
<a href="#">28/08/2011</a>
</li>
</ul>
<ul class="lineup hideme c1">
<li>...</li>
</ul>
<ul class="lineup hideme c2">
<li>...</li>
</ul>
<ul class="lineup hideme c3">
<li>...</li>
</ul>
$("ul.tab li a").click(function(){
$(".hideme").hide();
$(".hideme." + this.parentNode.id.split("_")[1]).show();
});
我就是这样做的。
答案 6 :(得分:-1)
试试这个,作为旁注,ids永远不应该以数字开头。
$("ul.tab a").click(function ()
{
$("#" + $(this).parent().attr('id')).removeClass("hideme");
});