0

クラスを割り当て、id をターゲットの href に追加するトグルを作成しようとしています。tagsまた、残りのリンクを削除せずに、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>
​

</p>

4

1 に答える 1

1

removeAttr()属性テキストを置き換えません。属性全体を削除するだけです。

あなたが持っている場所...

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

...あなたが持っている必要があります

$('.button').attr('href', $('.button').attr('href').replace(tags, ''));
于 2012-10-11T16:19:11.163 に答える