2012-10-11 62 views
0

我試圖創建一個指定類並將id添加到目標href的切換。我還希望能夠從href中刪除tags變量的內容,而無需刪除鏈接的其餘部分。在添加href後刪除部分href時遇到問題

我的問題: 那麼,當我點擊一個鏈接,它正確地將它分配給href,但是當我點擊並且已經活動的鏈接時,它將刪除類罰款,但不刪除添加到href的內容。例如,如果我點擊「施工」,我得到http://bshoults.com/construction&這是正確的,但是當我再次單擊時,我得到http://bshoults.com/construction&construction&而不是http://bshoults.com。以下代碼將刪除整個href而不僅僅是construction&部分。

http://jsfiddle.net/tewvd/1/

$('.tags li a').click(function() { 

    // set variable to get the href of .button 
    var _href = $('.button').attr("href"); 

    // if has class 'selected' 
    if ($(this).hasClass('selected')) { 

     // remove class 'selected' 
     $(this).removeClass('selected'); 

     // set variable to get tag from id of item 
     var tags = ($(this).attr('id') + "&"); 

     // create link based on href and tags 
     $('.button').removeAttr("href", tags); 
    } 
    // otherwise give it a class of 'selected' 
    else { 
     $(this).addClass('selected'); 

     // set variable to get tag from id of item 
     var tags = ($(this).attr('id') + "&"); 

     // create link based on href and tags 
     $('.button').attr("href", _href + tags); 
    } 
}); 

這裏的HTML:

<ul class="tags"> 
    <li><a href="javascript: void(0)" id="construction">construction</a></li> 
    <li><a href="javascript: void(0)" id="saturday">saturday</a></li> 
    <li><a href="javascript: void(0)" id="singles">singles</a></li> 
    <li><a href="javascript: void(0)" id="sunday+morning">sunday morning</a></li> 
    <li><a href="javascript: void(0)" id="teaching">teaching</a></li> 
</ul> 
<p><a href="http://bshoults.com/" class="button">Next Step &rarr;</a></p> 
​ 

+0

您正在嘗試....好... ...繼續努力?我在這裏沒有看到問題.... – Neal

+0

對不起,我沒有添加我的問題...呃。那麼,當我點擊一個鏈接時,它會正確地將它分配給href,但是當我點擊並且已經激活的鏈接時,它會刪除類,但不會刪除添加到href中的內容。例如,如果我點擊「施工」,我會得到「http://bshoults.com/sunday+morning&」這是正確的,但是當我再次點擊它時,我會得到「http://bshoults.com/construction&construction&」,而不是「http://bshoults.com」 –

+0

你的網址不是「正確的網址」,格式爲 http://www.domainname.com/pagename.html?queryparam=value&otherquery=value – deefactorial

回答

1

removeAttr()不替代屬性的文本。我只是刪除了整個屬性。

如果你有...

// create link based on href and tags 
$('.button').removeAttr("href", tags); 

...你需要有

$('.button').attr('href', $('.button').attr('href').replace(tags, '')); 
+0

絕對!非常感謝! –