-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

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 に答える
5

document.getElementsByClassName要素のノード リスト (配列など) を返します。したがって、配列のように扱う必要があります。要素が 1 つしかない場合は、これを試してください。

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