使用Javascript更改元素ID

时间:2017-03-24 21:28:01

标签: javascript

我试图更改ID'字符'到' characterSelected'

var character = document.getElementById('character');
var characterSelected = document.getElementById('characterSelected');

function klik() {
    character.innerHTML = characterSelected;
}

character.addEventListener('click', klik);

这是我到目前为止所做的,但似乎没有效果。我想只使用Javascript,没有jQuery。

由于

1 个答案:

答案 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就不会改变。