Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:将元素呈现给DOM,然后使用jQuery选择器选择它_Javascript_Jquery_Coffeescript - Fatal编程技术网

Javascript jQuery:将元素呈现给DOM,然后使用jQuery选择器选择它

Javascript jQuery:将元素呈现给DOM,然后使用jQuery选择器选择它,javascript,jquery,coffeescript,Javascript,Jquery,Coffeescript,这里试着理解一些东西:如果我从javascript向DOM呈现一些东西,并希望对其调用jQuery方法,那么它的行为与我从DOM中重新选择元素的行为不同。下面是一个简单的例子,在CoffeeScript中: element = """ <div id="my_div">TEST!</div> """ $('body').html(element) element.hide() #this doesn't work. $(element).hide() #this

这里试着理解一些东西:如果我从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对象?

我认为您需要:

element = $('<div id="my_div">TEST!</div>');

第一行不起作用的原因是元素是字符串。第二行不起作用的原因是它最终创建了另一个DOM版本的字符串

修复方法是在您第一次在JS中构造元素时维护对该元素DOM版本的引用:

var $elem = $(element);
$elem.appendTo(document.body);
$elem.hide() // should work
希望有帮助