innerHTML不使用getElementsByClassName

时间:2014-07-24 14:34:57

标签: javascript firefox innerhtml

我只是个初学者。我正在尝试使用innerHTML。 我想我写了正确的代码,但它不起作用。 当我点击触发器时,页面变为白色并显示法规:“连接” 我不知道问题出在哪里

请有人帮帮我。

这是我的代码。

HTML CODE

<div class = "head">
<nav>
<a onClick="open()">

<div class = "body">
<div class = "bodyL">
<div class = "newsPnT">

JAVASCRIPT CODE

function open() {
   document.getElementsByClassName('newsPnT').innerHTML = "asdfasdfasdf";
}

我的代码有什么问题?

PS:我正在使用Firefox Aurora。当我点击触发器时,'调试器&gt;消息人士说,“等待消息来源。”

2 个答案:

答案 0 :(得分:2)

getElementsByClassName()返回带元素的数组。

  

返回具有所有给定类名的所有子元素的类数组对象。在文档对象上调用时,将搜索完整文档,包括根节点。您也可以在任何元素上调用getElementsByClassName();它将仅返回具有给定类名的指定根元素的后代元素。

所以你需要迭代数组并设置像这样的innerHTML,即

var elements = document.getElementsByClassName('myClass');
Array.prototype.forEach.call(elements, function(element) {
    element.innerHTML = 'Your text goes here';
});

还有一点奖励JSFiddle

答案 1 :(得分:0)

className'open'似乎是javascript的关键字。 我将className从'open'更改为'openThis',这就成了问题的解决方案。