我试图通过类名获取一些元素并且它不起作用。但是,如果我按ID更改为获取元素,则可以正常工作。想了解为什么Class Name方法不起作用。 这是一个JSFiddle:http://jsfiddle.net/kXmpY/2681/ 如果我改为ID,它就可以了。我错过了什么?
HTML:
value in (tup[1] for tup in my_set)
JS:
<a href="#" class="cloneLink">Click me</a>
<div class="duplicator">
<label for="newInput">Label</label>
<input type="text">
</div>
答案 0 :(得分:0)
document.getElementsByClassName将返回一个名为HTMLCollection
的对象数组。要使代码正常工作,您需要确保其长度大于零,然后访问元素并附加事件。
let elements = document.getElementsByClassName("cloneLink");
if(elements.length){
elements.forEach( element => element.addEventListener("click" , duplicate))
}
答案 1 :(得分:0)
document.getElementsByClassName返回HTMLCollection
而不是单个元素。
你需要写
var original = document.getElementsByClassName("duplicator")[0];
即如果你有一个你想要操作的类名的单个元素。
getElementsByClassName()方法返回具有所有给定类名的所有子元素的类数组对象。
详细了解此here