2009-07-09 4 views
0

私は以前にjQueryでやっていたことをやっているYUIのプロジェクトをやっています。私はそれが困難ないくつかの基本的な操作を行うには見つけていて、つまり:DOM要素のYUIで基本的なDOM操作(コンテンツのクリア、コンテンツへの追加)を行う方法は?

  1. クリアコンテンツ
  2. は、私はどうしたら、DOM要素の内容にjQueryので

を追加します。

$(".someSelector").empty().append("<div>something</div>"); 

上記のやり方は?多くの面でW3C DOM仕様に頼っているようですが、その仕様にはあまり慣れていません。特定のW3Cやそのような資料が必要な場合は、具体的なリンクをお願いします。

答えて

3

DomメソッドのYUIドキュメントです。
Yahoo! UI Library > dom > YAHOO.util.Dom
それとも

YAHOO.util.Dom.get("somediv").innerHTML("<div>something</div>"); 
+2

私はinnerHTMLを操作する必要があるようです。何とかjQuery APIがよりエレガントに感じられます。 – Jaanus

3

を試してみてください(私はまだYUI3でプレイしていないが、これは変更する場合があります)YUIは、jQueryのないことDOM操作の同じレベルを提供していないようです。

innerHTMLは間違いなく機能し、一部の最新のブラウザではこれが変化しているとは思いますが、一度に高速でした。コンテンツを追加するには、標準の方法で十分です:

element.appendChild(childElement); 

クリアリングはもう少し複雑です。私は実際にYUI DOMのユーティリティを拡張することになったと方法としてこれを追加しました:

removeChildren : function(elem) 
{ 
    var theElement = this.get(elem); 
    var elemChildren = theElement.childNodes; 
    var childCount = elemChildren.length; 
    for (var i = childCount -1; i >= 0; i--) 
    { 
     theElement.removeChild(theElement.childNodes[i]); 
    } 
} 

子ノードをループするとき、私は最後の要素で開始し、前に自分の道を働くよりも、それは注意することが重要です。これは、ノードが削除されるたびに、配列のサイズが変化するためです。また、位置[0]のノードを削除すると、配列のすべての要素が下に移動します(つまり、位置[1]にあった要素が位置[0]の要素になります)。配列の先頭から開始する場合は、要素が欠けて配列の境界をすぐに超えてしまいます。

関連する問題