【问题标题】:jQuery: render element to the DOM, then select it with jquery selectorjQuery:将元素渲染到 DOM,然后使用 jquery 选择器选择它
【发布时间】:2012-11-26 13:47:22
【问题描述】:

试图在这里理解一些东西:如果我从 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.

所以,我似乎在这里误解了一些东西。我猜 element 变量只是一个字符串,jQuery 不明白它已作为元素添加到 DOM 中。

那么,有没有其他方法可以将内容插入到 dom 中,以便在插入后表现得像一个正常选择的 jQuery 对象?

【问题讨论】:

    标签: javascript jquery coffeescript


    【解决方案1】:

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

    解决方法是在第一次构造元素时(在 JS 中)维护对 DOM 版本的元素的引用:

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

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      我认为你需要:

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

      【讨论】:

        猜你喜欢
        • 2016-07-07
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 1970-01-01
        • 2013-06-10
        • 2012-05-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多