2011-07-15 9 views
1

とヴァールに保存されています。クエリーHTMLは、私が最初に私は、私は念のためにあなたが全体のシナリオを読んでの退屈理由を説明しますやろうとしているかを説明します道場

は基本的に私は、私は今、変数内の異なる要素にアクセスするために待機する必要が変数に保存されているいくつかのHTMLマークアップを持っています。例えば:私はあなたがクエリー機能を使用するときと同じように、H3タグを言っ取得するために、変数を照会するための方法がある場合は、私が知る必要がある何

var markUp = "<h3>h3 tag</h3><p>paragraph tag</p>"; 

はありますか?私は人々がdivを隠しdivに追加してdivを照会するいくつかの他のプラクティスを見てきました。私はこれを避けることを好むだろうが、それが唯一の方法であれば進めるだろう。

私はドロップで、私はそれがドロップされると、項目の構造を変更するには、カスタム作成者機能を使用し、ドラッグを開発しながら、この問題に遭遇し、アプリケーションをドロップしています。さらに説明が必要な場合

おかげでジョナサン

答えて

1

あなたの文字列からDOMフラグメントを作成するためにdojo._toDomを使用することができますを進める、と言ってください。

var markup = "<h3>h3 tag</h3><p>paragraph tag</p><p>another paragraph</p>"; 
var domFragment = dojo._toDom(markup); 

dojo.query("p", domFragment).forEach(function(element,i) { 
    console.debug(element.innerHTML); 
}); 

_toDomにアンダースコアの接頭辞は、それがdojoの「プライベート」メンバーの方法だということを意味します。通常、これを公開しているかのように使用するのは悪い習慣です(私がここでやったように)。しかし、_toDomの場合、私はそれが一般的に許容できると考えられていますし、それは次のバージョンで公開されてすることがありますようにthis trac entryによると、それが聞こえると信じています。

+0

すごい感謝フローデは私が必要とする正確に何のような音の前に、この方法に遭遇hav'nt。これを試してみよう、今夜はありがとう! – jonnyhitek

+0

こんにちはFrodeは本当に味方の質問のようですが、_toDomメソッドから項目を追加する際に問題が発生しています。私は以下を試してみます - var newElem = dojo.query( "h3"、markUp);しかし、私がDOMに追加すると、実際のHTMLの代わりに[オブジェクトHTMLHeadingElement]が表示されます。 – jonnyhitek

+0

@jonathan p、どうやってDOMに追加していますか? '_toDom'を使ってDOMオブジェクトに変換すると、それをテキストのように挿入することはできません。だからあなたは 'somDiv.innerHTML = newElem;'を実行することはできません。 'someDiv.appendChild(newElem);'(または 'dojo.place'を使って)行う必要があります。 – Frode

関連する問題