2012-03-01 2 views
0

タグソースからDocumentオブジェクトに新しい要素を作成する方法はありますか?代わりに、この種のもののDOM操作をハックしようとしているのinnerHTMLプロパティを使用して、うまくJavascript DOMタグソースからのcreateElement

myDocument.createElement('<sometag attr="lol">'); 

答えて

0

:基本的に私は何をしたいことの効果に何かです。

2

いいえ、.createElementのネイティブDOM APIがそれをサポートしていません

は、そうしたい場合は、DOMとの有効なノードを作成(またはgetElementByIdを介して、それを得る)ために、そしてあなたのコードでこのノードのinnerHTMLプロパティを設定します構文。あなたは、何が「可能性は」documentFragmentを作成するにはどうすればよいです.setAttribute()

newElem.setAttribute('attr', 'lol'); 

を使用し、プレーンな要素を作成し、オブジェクト

newElem.attr = "lol"; 

または(より良い)に直接的に任意のプロパティを設定する必要があります .innerHTMLを使用して、その文字列をそのフラグメントに書き込み、最後に .appendの内容をターゲットの宛先に書き出します。

+0

それは 'のsetAttribute()'のように見える(http://jsperf.com/setattribute-vs-attr) ':-) .attr' –

+0

@FlorianMargaine [より遅い]:非常に可能。しかし、注意点は、この構文は、この時点までの仕様ではどこにも記述されていないということです。とても曖昧なコーディングスタイル。とにかく、ほぼすべてのブラウザは、何らかの形でその構文をサポートしているようです。それで、それはあなた次第です。 – jAndy

0

ここでinnerHTMLプロパティが機能しますが、時には必要な場所に配置するのは少し難しいです。たとえば、次のように私の謙虚な意見では

var div = document.createElement('div'); 
div.innerHTML = "<img src='http://www.google.com/logos/classicplus.png'/>"; 

、それがすでに接続jQueryのメソッドのすべてが付属して、あなたのためにそれを処理するためのjQueryを使いやすく、多くの一体です。

var div = $("<div class='blah'><img src='http://www.google.com/logos/classicplus.png'/></div>"); 
div.find('img').hide(); 
div.appendTo('body'); 
div.find('img').fadeIn();