-1

可能重复:
getElementByClass().setAttribute 不起作用

为什么这个:

document.getElementsByClassName('cke_source').setAttribute('name', "mymessage") 

正在返回:

TypeError: Object #<NodeList> has no method 'setAttribute'

document.getElementsByClassName('cke_source')正在正确返回对象。

  • 请不要使用 jQuery。
4

2 回答 2

5

document.getElementsByClassName将返回元素的节点列表(如数组)。所以,你需要把它当作一个数组来对待。如果你只有一个元素,试试这个:

document.getElementsByClassName('cke_source')[0].setAttribute('name', "mymessage")
于 2012-06-25T20:47:42.363 回答
5

getElementsByClassName 将返回一个项目集合,而不是单个项目。

var pColl = document.getElementsByClassName('cke_source');
for (var ii=0; ii< pColl.length; ii++)
{
    pColl[ii].setAttribute('name', 'foo');
}
于 2012-06-25T20:48:49.917 回答