链接类名称目标div与链接的类名相同的ID

链接类名称目标div与链接的类名相同的ID

问题描述:

基本上我有一个类名链接列表和一个div的容器,它与链接的类名相同。链接类名称目标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> 

如果我链接“表名”,然后id="table-names"需要点击有类selected,并将兄弟姐妹需要有一流的“选择”中删除。

这里是我的jQuery:

$('ul li a').click(function() { 
    $(this).parent('li').addClass("selected").siblings("li").removeClass("selected"); 
    $('.container div').removeClass("selected"); 
    $('#' + $(this).className()).addClass("selected"); 
}); 

这有点不工作,尽管我相信代码是正确的。我究竟做错了什么?

+1

使用'$(this).attr('class')'你确定只有一个类在主播 – guradio

+0

谢谢,当然,我没有想到这一点。 –

+0

很高兴帮助队友:) – guradio

$(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"); 
}); 
+0

是的,做到了这一招:)奇怪,我想我看到className用在某个地方。但是,这工作非常感谢你。 –

+1

@WimMertens - 不客气。 'className'是本地DOM元素的属性,而不是jQuery函数,因此它可以是'this.className'或'$(this).attr('class')' – adeneo

的className是不是一个jQuery方法

var target = document.getElementById("table-names"); 
alert(target.className) //not className()

要获得jQuery的类,使用ATTR(“类“),attr()方法可用于获取或设置任何属性...

var $use = $(this).attr("class"); 
$("#"+$use).siblings().removeClass("selected")

我希望这可以帮助