1

おそらく簡単ですが、私には理解できません。私はこのコードを持っています:

var myNewHref = "#"+jQuery(this).attr('id');
jQuery(this).attr('href', myNewHref);
jQuery(this).attr("id", "");

最初の行では、要素の ID に基づいて新しい変数を作成します。2 行目で、myNewHref 変数を使用して href プロパティを追加します。3 行目で id を空に設定しました。問題は、ID を空に設定すると、myNewHref 変数も変更されて空になることですが、myNewHref を設定したままにしたいのです。さらに、id を href に割り当てた後に、id をクリアするアクションが実行されます。誰でも助けることができますか?

4

3 に答える 3

1

うまくいくようです:

http://jsfiddle.net/4y2HM/4/

<a href="#" id="test">hello</a>

<script>
    $('#test').click(function(){
        var myNewHref = "#"+$(this).attr('id');
        $(this).attr('href', myNewHref);
        $(this).attr("id", "");
        alert("href: " + $(this).attr('href'));
        alert("id: " + $(this).attr('id'));
    });
</script>
于 2013-10-27T21:20:31.663 に答える
0

コードを複数回実行しない限り、問題を再現することはできません。ただし、ID を正しくクリアするには、次のように簡単に使用できます。

this.id = null;

そのコードが複数回実行されないようにする必要があります。コード複数回実行されると、ID は既に削除され、hrefプロパティは just に設定されます#。コードがその特定の要素に基づくイベント ハンドラー内にある場合、jQuery のone()関数を使用して、そのイベントを 1 回だけ処理できます。

于 2013-10-27T21:25:15.347 に答える
-1

属性を取り除きたい場合は、次のid方法を使用します。

jQuery(this).removeAttr("id");
/* Or */
this.removeAttr("id");

または、を無効にする場合はid、次を使用できます。

this.id = null;
于 2013-10-27T21:19:14.760 に答える