[英]Can I change the ID of an HTML element using Javascript?
我有javascript變量obj,它代表DOM中的一個元素,我希望更改它的ID。 我試圖通過以下方式做到這一點,這也說明它不起作用!
obj.id = "newID";
alert(obj.id); // this gives me newID as required
var element = document.getElementById("newID");
if (element != null) { alert("Hooray"); // this alert never gets displayed! }
上面我的代碼有什么問題,這意味着id似乎被改變但在DOM中沒有被提取? 提前謝謝了。
既然你沒有給我們整個代碼,我的猜測是你的代碼中可能有類似的東西
obj = document.createElement("div");
obj.id = "something";
// ...
obj.id = "newID";
alert(obj.id); // this gives me newID as required
var element = document.getElementById("newID");
if (element != null) { alert("Hooray"); // this alert never gets displayed! }
在該特定情況下, document.getElementById("newID")
將不會返回任何內容,因為元素未添加到頁面中,因此在頁面中找不到它。
沒有理由這不應該使用純JavaScript。 這是一個工作小提琴 ,顯示它的工作。 你不應該需要一個jQuery解決方案或任何其他JavaScript方法, id = "foo";
是更改DOM對象ID的最簡單方法。
看看我上面的小提琴,試着看看你的代碼和我的代碼有什么區別。
你展示的代碼確實有用; 問題可能出在查找和分配obj
的代碼中。 我的猜測是,這只是一個javascript對象,而不是DOM樹的一部分。
您的代碼看起來很好,但如果您在代碼中以這種方式進行評論,您可以意識到由於注釋,括號永遠不會關閉。
if (element != null) { alert("Hooray"); // this alert never gets displayed! } <-- this brace
嘗試這個:
適合我
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>test</title>
</head>
<body bgcolor="#ffffff">
<script type="text/javascript">
function ChangeID(elementId, newId) {
var obj = document.getElementById(elementId);
obj.id = newId;
}
function SetContent(elementId, content) {
var obj = document.getElementById(elementId);
obj.innerHTML = content;
}
</script>
<div id="div1"></div>
<a href="#" onclick="ChangeID('div1', 'div6');">ChangeID</a><br />
<a href="#" onclick="SetContent('div6', 'this is the contents');">Set Contents</a>
</body>
</html>
還有另外一件事要考慮。 在DOM准備好之前,您是否嘗試這樣做? 該元素已加載嗎? 如果您嘗試更改DOM在樹中沒有的元素,您將悄然失敗。
是的,你可以,這是一個jquery的解決方案
$("#xxx").attr("id", "yyy");
要么
getElementById("xxx").setAttribute("id", "yyy");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.