Javascript jQuery:将元素呈现给DOM,然后使用jQuery选择器选择它
这里试着理解一些东西:如果我从javascript向DOM呈现一些东西,并希望对其调用jQuery方法,那么它的行为与我从DOM中重新选择元素的行为不同。下面是一个简单的例子,在CoffeeScript中: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
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
希望有帮助