2

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

<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>

requests = 0 の場合、id="test" を id="nextstep" に変更したい。

4

4 に答える 4

6

あなたは試すことができます:

document.getElementById('test').setAttribute('id', 'nextstep');
于 2009-09-12T00:41:37.533 に答える
1

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

getElementById('test')の部分は正しいですが、 "。setAttribute('id'、'nextstep');"をスローするだけです。

お役に立てば幸いです。

于 2009-09-12T00:45:33.050 に答える
1

スクリプトタグでラップする限り、それはまさにあなたがそれを行う方法です...

<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>

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

于 2009-09-12T00:42:12.963 に答える
1

if(self.href != "#")

問題があります。リンクの href はブラウザーによって正規化されるため、ページ '<a href="http://www.example.com/" rel="nofollow noreferrer">http://www.example.com/ のリンク '#' ' の href 属性は '<a href="http://www.example.com/#" rel="nofollow noreferrer">http://www.example.com/#' であり、条件に一致しません。

「self」という名前は、グローバル オブジェクト (別名「window」) の名前と競合するため、使用しないでください。JavaScript からハンドラーを割り当てることで、「self」の不器用な受け渡しを回避できます。

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

属性の代わりに、onclickrequest() で「this」を使用できます。request() はreturn false;、たどられているリンクを停止する必要もあります (ブラウザを一番上までスクロールさせます)。<button>(または)を使用する<input type="button">ことをお勧めします。これはアクション ボタンであり、新しいウィンドウやブックマークで開くことができるリンクではないためです。(いつでも CSS を使用して、ボタンのように見えないようにすることができます。)

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

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

于 2009-09-12T02:11:32.767 に答える