2017-01-23 51 views
2

我想基於錨點導航來構建此部分。當我點擊一個鏈接,我得到所需的固定和點擊鏈接收益具有特定樣式類,到目前爲止,它工作得很好:獲取href值,然後找到它作爲編號

HTML

<body> 

    <nav> 
    <div class="anchor-link" > <a href="#anchor1" > Anchor 1 </a> </div> 
    <div class="anchor-link"> <a href="#anchor2"> Anchor 2 </a> </div> 
    <div class="anchor-link"> <a href="#anchor3"> Anchor 3 </a> </div> 
    <div class="anchor-link"> <a href="#anchor4"> Anchor 4 </a> </div> 
    <div class="anchor-link"> <a href="#anchor5"> Anchor 5 </a> </div> 
    </nav> 

    <div class="main-wrap"> 
    <div id="anchor1"></div> 
    <div id="anchor2"></div> 
    <div id="anchor3"></div> 
    <div id="anchor4"></div> 
    <div id="anchor5"></div> 
    </div> 

</body> 

JS

$(document).ready(function(){ 
    $(".anchor-link").on("click", function(){ 
    $(this).addClass("active"); 
    $(this).siblings().removeClass("active"); 

現在我想獲得href裏面的值,但是這不起作用,它返回undefined:

 var href = $(this).attr('href'); 
     console.log(href); 
    }) 

假設它工作,並且var href保存點擊鏈接的值,例如「#anchor1」,我將如何繼續然後在「main-wrap」中找到div,id爲div 「#anchor1」?

這個工作,以及我將如何填補查找查詢?

$(".main-wrap").find(...); 
+0

爲了得到正確的HREF:用這個來代替:'VAR的href = $( 「A」,這一點).attr( 'href' 屬性);' –

回答

5

這裏是內一個jsFiddle做你想做的事:jsFiddle

還有jquery片段:

$(document).ready(function(){ 
    $(".anchor-link").on("click", function(){ 
    $(this).addClass("active"); 
    $(this).siblings().removeClass("active"); 
     var href = $("a", this).attr('href'); 
     $(href).html("You clicked " + href + " !"); 
    }); 
}); 

你在哪裏試圖獲得$(this)元素指的的<div class="anchor-link" >點擊的href,至極沒有任何href屬性。

通過這樣做:$("a", this).attr('href')你告訴採取<a>元素在我剛按下

此之後,你可以選擇與$(href)

+0

謝謝你的解釋。這樣可行。 – Sergi

3

您正在試圖獲得<div>href,它不具有屬性

更改選擇的<a>或看採用div find()方法

$(".anchor-link").on("click", function(){ 
    var href = $(this).find('a').attr('href'); 
    .... 

}) 
1

相應的div嘗試DIV href屬性的值下面單擊處理

$(document).ready(function(){ 
    $(".anchor-link a").on("click", function(){ 
    $(this).parents('.anchor-link').addClass("active"); 
    $(this).parents('.anchor-link').siblings().removeClass("active"); 
     var href = $(this).attr('href'); 
     console.log(href); 
    }); 
})