在单元素id-selector上使用jQuery .each()方法

Chr*_*isV 6 jquery

在Nemikor博客中解释jQuery对话框,ScottGonzález在id选择器上使用.each()方法:

$('#page-help').each(function() {
  var dialog = $('<div></div>')
    .load($(this).attr('href'))
    .dialog( ... );
  $(this).click(function() { ... });
});
Run Code Online (Sandbox Code Playgroud)

由于id选择器只能返回单个元素,因此使用.each()方法的目的是什么?(通常用于迭代匹配的元素).

难道只是没有更简单的方法来执行'page-help'元素的功能,该元素提供对$(this)的访问?

Poi*_*nty 5

它可以让你搞乱一些东西,而不会污染周围的命名空间.另一种选择可能是:

(function($this) {
  var dialog = $('<div></div>')
    .load($this.attr('href'))
    .dialog(...);
  $this.click(function() { ... });
})($('#page-help'));
Run Code Online (Sandbox Code Playgroud)

我不知道哪两个更令人不安.我想我并不真的知道这是做这种方式的原因(即命名空间整洁).