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 中,以便它在插入后表现得像一个正常选择的 jQuery 对象?

4

2 回答 2

7

第一行不起作用的原因是元素是一个字符串。第二行不起作用的原因是它最终创建了另一个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 回答