“ id =”の値を変更するdocument.getElementByIdを使用
-
06-07-2019 - |
質問
これは正しい方法ですか?
<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
の設定はすでに正常でした。
しかし、これはいずれにせよ、あなたがやりたいことを行う奇妙な方法のように思えます。