jQuery-如何确定内部锚链接父级的属性

时间:2014-08-02 13:48:32

标签: jquery

我正在尝试查看锚链接位置是否位于其类为“tab”的列表中:

<ul class="etabs">
<li class="tab"><a href="#tab1" alt="">Tab 1</a></li>
<li class="tab"><a href="#tab2" alt="">Tab 2</a></li>
<li class="tab"><a href="#tab3" alt="">Tab 3</a></li>
</ul>

现在,假设我直接访问此页面:

http://www.example.com/page.html#tab2

我有:

if (document.location.href.indexOf('#') > -1) {

    if ($(window.location.hash).parent('li').hasClass('tab')) { // something wrong here
      alert('its a tab');
    } else {
      alert('not tab');
    }

}

我一直在“不是标签”。我的代码出了什么问题?

3 个答案:

答案 0 :(得分:0)

当您访问http://www.example.com/page.html#tab2时,window.location.hash将为#tab2,这意味着$(window.location.hash)将查找 id 的元素TAB2。

所以将id添加到你的标签:

<a id="tab2" href="#tab2"

答案 1 :(得分:0)

尝试此选择具有属性href和#tab2值的标签;

if($('a[href="#tab2"]').parent('li').hasClass('tab')){


}

答案 2 :(得分:0)

如果你正在使用jquery,那么为所有锚链接添加一个类(例如:“link”)。然后以下代码将适合你

          $("a.link").each(function(){
                if($(this).parent("li").hasClass("tab")){
                    alert("is a tab")
                }else{
                    alert("not a tab");
                }
            })