现在我知道它可能看起来是重复的,但事实并非如此。我阅读所有其他职位与这个标题,但无法找到答案。 我:getElementsByClassName不是函数javascript
<ul>
<a id="A" class="tablink">A</a>
<a id="B" class=tablink">B</a>
...
</ul>
我想以上元素的ID,将被HREF从另一个无序列表另一个列表元素。
<ul>
<a id="1" class="subjects" >1</a>
<a id="2" class="subjects">2</a>
</ul>
我已经有这个代码
<script type="text/javascript">
$(".tablink").on("click", function(){
var char = this.getAttribute("id");
var link = document.getElementsByClassName("subjects").getAttribute("id");
document.getElementsByClassName("subjects").href = char + link
});
</script>
但它显示在标题中错误。它起作用,如果我设置:document.getElementById("subjects")
,我还必须将主题更改为id而不是class。所以它只适用于一个元素,但我有更多的元素,所以我认为我必须做一些for循环? 编辑:使用jQuery完成,没有for循环?如果是,如何?
在jQuery回调中使用'getElementsByClassName()'。好。 –
不能说你得到的错误,但你应该阅读[什么做querySelectorAll,getElementsByClassName和其他getElementsBy *方法返回?](http://stackoverflow.com/q/10693845/218196) –
你的错误是因为'getElementsByClassName'返回一个列表,所以当你尝试访问该列表上的方法或属性时,它不存在。 – scrappedcola