我仍在尝试学习纯javascript看到我跳过它并去学习jQuery,虽然我不再需要一个库了。我想要速度,反正我有一些关于纯JavaScript的问题。
第一个问题:
var profile = document.getElementsByClassName("postprofile-details");
var details = profile.getElementsByTagName("dd");
details[0].style.display = "none";
我一直收到错误
TypeError: Object #<NodeList> has no method 'getElementsByTagName'
我该怎么做?
下一个问题基本上与上面相同的代码相关,我知道jQuery有一个.prepend()
和.append()
所以如何在{{1}中插入额外的HTML }} 以上?
第三个也是最后一个问题
我想弄清楚这类问题,我一直在学习循环函数而不是var profile
,这就是我想出来的但却出错了
.each()
手头的问题是我如何确保我在for循环函数中选择循环?我
A )a [i] .getEle ...
或
B )a.getEle ...
这些问题的任何答案都会有所帮助,我只是厌倦了使用jQuery
使用Follow Answers and Comments
让我看看我是否可以写这个
var a = document.getElementsByClassName('postprofile-details');
for (var i =0; i<a.length; i++) {
a[i].getElementsByTagName('dd').style.display='none';
}
如果我的代码中有任何问题可见,请告诉我。谢谢。
答案 0 :(得分:2)
TypeError:Object#没有方法'getElementsByTagName'
您应该使用:
profile[index].getElementsByTagName("dd");
使用所需节点,您无法在节点列表中使用getElementsByTagName
。
下面的问题基本上与上面相同的代码有关,我知道jQuery有一个.prepend()和.append(),那么如何在上面的var配置文件中插入额外的HTML?
profile[index].appendChild(newNode);
最后回答:
作为第一个答案,您需要迭代所有nodeList getElementsByTagName
\ getElementsByClassName
返回。