我只想知道这两种方法之间是否有任何区别(尤其是在性能方面):

1)

$('.container').append('<div class="divChild">test div</div>');
$('.container .divChild').click(function() { alert('test'); });


2)

var $childDiv = $('<div class="divChild">test div</div>');
$childDiv.appendTo($('.container')).click(function() { alert('test'); });


因此,基本上,第二种方法似乎要快得多,因为我真的不必两次搜索divChild div,但是我需要在div中添加click事件。
是这样吗?

最佳答案

在这里要做的第一点是:除非您经常这样做(在很短的时间内成千上万次),否则这无关紧要。

但是我怀疑最有效的方法是记住$('.container')的结果,然后在其上使用children

var c = $('.container');
c.append('<div class="divChild">test div</div>');
c.children('.divChild').click(function() { alert('test'); });


或者实际上,从技术上讲,您不需要变量:

$('.container')
    .append('<div class="divChild">test div</div>')
    .children('.divChild')
      .click(function() { alert('test'); });


但是我发现这样的长链很难阅读,难以维护和调试。

09-25 19:31