質問

これは正しい方法ですか?

<a id="load" href="#" class="btn load" onclick="request(this); $('#load').fadeOut(2000)">add</a>

<a href="#" id="test" onClick="alert( 'TEST!' )">here</a>

<script language="javascript">
var requests = 2;

function request(self)
{if(self.href != "#")
requests -= 1;

if(requests === 0)
document.getElementById("test").id= "nextstep";}
</script>

id =&quot; test&quot;が欲しいid =&quot; nextstep&quot;に変更するにはリクエスト= 0の場合。

役に立ちましたか?

解決

試すことができます:

document.getElementById('test').setAttribute('id', 'nextstep');

他のヒント

これは、スクリプトタグでラップする限り、まさにその方法です...

<script language="javascript" type="text/javascript">
if(requests === 0){
    document.getElementById('test').id = "nextstep";
}
</script>

そのアンカーのクリックでこれをトリガーしようとしている場合は、次を使用します:

<script language="javascript" type="text/javascript">
function changeID(){
    if(requests === 0){
        document.getElementById('test').id = "nextstep";
        alert('TEST!');
    }
}
</script>

<a href="#" id="test" onclick="changeID()">Test</a>

編集:これを投稿した後、質問の内容を変更しました...

アンカータグのIDを変更するには、「setAttribute」を使用する必要があります。

getElementById( 'test')部分は正しいが、単に&quot; .setAttribute( 'id'、 'nextstep');&quot;を投げる

役立つことを願っています!

  

if(self.href!=&quot;#&quot;)

問題があります。リンクhrefはブラウザによって正規化されるため、リンク&#8216;#&#8217; &#8216; http://www.example.com/ &#8217; href属性が&#8216; http://www.example.com/# &# 8217;条件に一致しません。

名前&#8216; self&#8217;は、グローバルオブジェクト(別名&#8216; window&#8217;)の名前と衝突するため、使用しないでください。 &#8216; self&#8217;の不器用な受け渡しを回避できます。 JavaScriptからハンドラーを割り当てることにより:

document.getElementById('load').onclick= request;

onclick 属性の代わりに、&#8216; this&#8217;を使用できます。 request()で。 request()は、 return false; を使用して、たどられるリンクを停止する必要があります(ブラウザを一番上までスクロールさせます)。より良いのは、&lt; button&gt; (または&lt; input type =&quot; button&quot;&gt; )を使用することです。これは、アクションボタンであり、新しいウィンドウまたはブックマークで開くことができます。 (CSSを使用して、ボタンのように見えなくすることができます。)

HTMLでsetAttribute()を使用しないでください。IEでこの使用法とは無関係の問題があります。 element.id の設定はすでに正常でした。

しかし、これはいずれにせよ、あなたがやりたいことを行う奇妙な方法のように思えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top