问题描述
我有一个函数clickEvent(event)
和一个数组。
我想将元素推送到数组,然后在此列表中循环以将元素与另一个包含相同元素的数组的元素进行比较。
问题在于,当我向元素添加样式时,元素的HTML会更改,并且不再与其他列表中的元素相同。
为什么包含样式的元素添加到列表中?
我在推送元素后添加了样式,所以我不明白为什么会这样。
是否有另一种方法可以向元素添加背景而无需在元素上添加样式?
clickEvent(event) {
array.push(event.target);
event.target.style.background = 'red';
}
1楼
您要添加到列表中的内容只是对HTML元素的引用,而不是实际元素本身。 您需要做的是克隆事件目标,然后将克隆添加到列表中。
例如:
array.push(event.target.cloneNode());
然后,这将创建元素的全新副本,当原始元素更改时,该副本将不会更改。
可以在找到有关cloneNode方法的其他信息。