2011-06-28 17 views
1

divの直後にdtext01のクラスを追加しようとしていますが、動作していません。 ここでは、クラス<div class="dtext01"></div>のようなdivがあります。最終的なコードはこのようになります。<div class="dtext01"></div><div id="rewards">Testing!!!</div>別のdivの後に新しいdivを追加する

ここでは、私は成功しなかったコードです。

<script type="text/javascript"> 
var stickyNode = document.createElement("div"); 

stickyNode.innerHTML = 'Testing!!!'; 

stickyNode.id = "rewards"; 
var referenceNode = document.getElementByClass("dtext01"); 
referenceNode.parentNode.insertBefore(stickyNode, referenceNode); 
</script> 

答えて

1

document.getElementByClass()はありません。 document.getElementsByClassName()querySelectorAll()は、classNameで要素を取得するために使用できますが、ブラウザ間では標準ではありません。

信頼できるソース(this oneなど)からクロスブラウザgetElementsByClassNameをインポートすることも、自分で書くこともできます。また、選択肢があればクラスの代わりにIDを使用することもできます。

1

あなたが探している機能はdocument.getElementsByClassName(要素上の複数の点に注意してください)です。 HTMLElement interfaceには最近追加されたものなので、テストしてサポートされていなければフォールバックを提供する必要があります。最初のノードが返された直後に、あなたのdivを追加する

、使用:

var referenceNode; 
if (document.getElementsByClassName) { 
    referenceNode = document.getElementsByClassName("dtext01")[0]; 
} else { 
    // fallback to some other function 
} 

// Make sure you got a node before trying to call methods on it 
if (referenceNode) { 
    referenceNode.parentNode.insertBefore(stickyNode, referenceNode); 
} 
関連する問題