我试图更改ID'字符'到' characterSelected'
var character = document.getElementById('character');
var characterSelected = document.getElementById('characterSelected');
function klik() {
character.innerHTML = characterSelected;
}
character.addEventListener('click', klik);
这是我到目前为止所做的,但似乎没有效果。我想只使用Javascript,没有jQuery。
由于
答案 0 :(得分:1)
你尝试了一些东西,它没有用。现在是时候查找您使用不正确的标准属性和功能了。如果猜测不起作用,请始终寻找可靠的文档。
一个很好的参考是Mozilla开发者网络(MDN)。它是一本关于网络,其标准和当前浏览器兼容性的维基百科全书。如果您查看有关innerHTML的页面,您会发现以下内容:
Element.innerHTML属性设置或获取HTML语法描述 元素的后代。
这意味着innerHTML属性用于替换标记的内容,就像在其中编写HTML一样。不是你想要的。
您想要的是更改元素的ID。如果您搜索元素ID,您将登陆Element.id页面。实际上,有一个例子:
var idStr = elt.id; // Get the id. elt.id = idStr; // Set the id
但是,这不会解决您的问题。你看,在尝试使用getElementById函数时,你猜对了。此函数查看页面并立即查找具有该id的元素。如果您最初没有任何带有characterSelected
ID的元素,那么您设置的此变量将在剩余的时间内为null
。当具有该id的元素放置在页面中时,变量不会神奇地更新。
最后,你错过了id attribute本身的目的。
其目的是在链接时识别元素(使用片段) 标识符),脚本或样式(使用CSS)。
id的目的是唯一地标识元素。你可能会想:"那是我正在做的事情"。不。您使用id来表示是否选择了元素。这是错的。根据您的目标,我会说:只需将所选元素存储在变量中。然后,只要您需要对所选元素执行某些操作,就可以使用该变量。如果您需要该元素的特定样式,则可以为其设置类。但是id根本就没有意义 - 实际上,一旦元素被放置,id就不会改变。