纯JavaScript TagName等等

时间:2013-03-19 20:17:08

标签: javascript jquery for-loop getelementsbytagname getelementsbyclassname

我仍在尝试学习纯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';
   }

如果我的代码中有任何问题可见,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:2)

  

TypeError:Object#没有方法'getElementsByTagName'

您应该使用:

profile[index].getElementsByTagName("dd");

使用所需节点,您无法在节点列表中使用getElementsByTagName

  

下面的问题基本上与上面相同的代码有关,我知道jQuery有一个.prepend()和.append(),那么如何在上面的var配置文件中插入额外的HTML?

profile[index].appendChild(newNode);

最后回答:

作为第一个答案,您需要迭代所有nodeList getElementsByTagName \ getElementsByClassName返回。