基本上我有一个带有类名的链接列表和一个带有div的容器,其中id与链接的类名相同。
<ul>
<li><a class="table-names">Names</a></li>
<li><a class="table-addresses">Addresses</a></li>
<li><a class="table-phone">Phone Numbers</a></li>
</ul>
<div class="container">
<div id="table-names" class="selected">...</div>
<div id="table-addresses">...</div>
<div id="table-phone">...</div>
</div>
如果我点击链接&#34; table-names&#34;然后id="table-names"
需要添加类selected
,并且兄弟姐妹需要选择&#34;选择&#34;除去。
这是我的jquery:
$('ul li a').click(function () {
$(this).parent('li').addClass("selected").siblings("li").removeClass("selected");
$('.container div').removeClass("selected");
$('#' + $(this).className()).addClass("selected");
});
虽然我认为代码是正确的,但这在某种程度上是行不通的。我做错了什么?
答案 0 :(得分:2)
$(this).className()
无效,您需要将其更改为$(this).attr('class')
或this.className
$('ul li a').click(function () {
$(this).parent('li').addClass("selected").siblings("li").removeClass("selected");
$('.container div').removeClass("selected");
$('#' + $(this).attr('class')).addClass("selected");
});
答案 1 :(得分:0)
className不是jquery方法
var target = document.getElementById("table-names"); alert(target.className) //not className()
要在jquery中获取类,使用attr(“class”),attr()方法可用于获取或设置任何属性......
var $use = $(this).attr("class"); $("#"+$use).siblings().removeClass("selected")
我希望这会有所帮助