• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

在添加href后删除部分href时遇到问题

jquery 来源:Ben Shoults 22次浏览

我试图创建一个指定类并将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> 
​ 


===========解决方案如下:

removeAttr()不替代属性的文本。我只是删除了整个属性。

如果你有…

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

…你需要有

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

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)