HTML div
要素のクライアント側のIDをJavaScriptで変更しています。次のコードは、Internet Explorerでは正常に機能しますが、Firefox/2.0.0.20では機能しません。 Firefoxのより新しいバージョンで動作します。
document.getElementById('one').id = 'two';
誰でも私に言うことができます:
明確にするために、外部スタイルシートの別のスタイルを参照するように要素IDを変更しています。スタイルはIEで適用されますが、FFでは適用されません。
Firefoxで動作します(を含む2.0.0.20
)。 http://jsbin.com/akili (編集するURLに/edit
を追加)を参照してください:
<p id="one">One</p>
<a href="#" onclick="document.getElementById('one').id = 'two'; return false">Link2</a>
最初のクリックはid
を"two"
に変更し、2番目のクリックはid="one"
の要素が見つからないためエラーになります!
おそらく、別の要素alreadywith id="two"
(FYI 同じid
を持つ複数の要素を持つことはできません )。
それは私のために働くようです:
<html>
<head><style>
#monkey {color:blue}
#ape {color:purple}
</style></head>
<body>
<span id="monkey" onclick="changeid()">
fruit
</span>
<script>
function changeid ()
{
var e = document.getElementById("monkey");
e.id = "ape";
}
</script>
</body>
</html>
予想される動作は、「フルーツ」という単語の色を変更することです。
おそらく、ルーチンを呼び出したときにドキュメントが完全にロードされていませんか?
id
を使用せずにgetElementById
を変更できます
例:
<div id = 'One' onclick = "One.id = 'Two'; return false;">One</div>
ここで見ることができます: http://jsbin.com/elikaj/1/
Mozilla Firefox 22およびGoogleでテスト済みChrome 60.0