【问题标题】:Having trouble removing part of an href after adding it添加后无法删除部分href
【发布时间】:2012-10-02 08:53:48
【问题描述】:

我正在尝试创建一个分配类并将 id 添加到目标 href 的切换。我还希望能够从 href 中删除 tags 变量的内容,而无需删除链接的其余部分。

我的问题: 好吧,当我单击一个链接时,它会正确地将其分配给 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>
​

【问题讨论】:

  • 您正在尝试.... 好的...所以继续尝试?我在这里没有看到问题......
  • 对不起,我没有添加我的问题......呃。好吧,当我单击一个链接时,它会正确地将其分配给 href,但是当我单击并且已经处于活动状态的链接时,它会很好地删除类,但不会删除添加到 href 的内容。例如,如果我点击“construction”,我会得到“bshoults.com/sunday+morning&”,这是正确的,但是当我再次点击它时,我会得到“bshoults.com/construction&construction&”而不是“bshoults.com
  • 您的网址不是domainname.com/…格式的“正确网址”

标签: jquery href attr


【解决方案1】:

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

你在哪里...

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

...你需要有

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 2017-03-29
    • 1970-01-01
    • 2023-03-14
    • 2018-08-16
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多