2

ここで何かを理解しようとしています: javascript から DOM に何かをレンダリングし、その上で jQuery メソッドを呼び出したい場合、DOM から要素を「再選択」した場合とは異なる動作をします。以下は、CoffeeScript での簡単な例です。

element = """
  <div id="my_div">TEST!</div>
  """

$('body').html(element)
element.hide() #this doesn't work.
$(element).hide() #this doesn't work either.

$('div#my_div').hide() #this does.

だから、私はここで何かを誤解しているようです。要素変数は単なる文字列であり、jQuery はそれが DOM の要素として追加されたことを理解していないと思います。

コンテンツを dom に挿入する別の方法はありますか?

4

2 に答える 2

7

最初の行が機能しない理由は、要素が文字列であるためです。2 行目が機能しない理由は、文字列の別のDOM バージョンを作成することになるためです。

修正は、最初に(JSで)要素を構築するときに、要素のDOMバージョンへの参照を維持することです。

var $elem = $(element);
$elem.appendTo(document.body);
$elem.hide() // should work

それが役立つことを願っています。

于 2012-11-26T05:47:22.807 に答える
2

私はあなたが必要だと思います:

element = $('<div id="my_div">TEST!</div>');
于 2012-11-26T05:45:07.087 に答える