将类名链接到目标div,其id与链接的类名

时间:2016-09-20 02:21:22

标签: jquery

基本上我有一个带有类名的链接列表和一个带有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");
});

虽然我认为代码是正确的,但这在某种程度上是行不通的。我做错了什么?

2 个答案:

答案 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")

我希望这会有所帮助