使用Jquery,只需选择一次调用函数

时间:2010-06-16 10:21:58

标签: javascript jquery

假设我有这样的文本框选择;

var arrayoftextboxes = $('.textbox1, .textbox2, .textbox3');

我有没有办法以比这更简单的方式调用每个函数? 它只需要调用一次。

arrayoftextboxes.each(function(i){foo(arrayoftextboxes[i]);});

我试过

arrayoftextboxes.load(function(){foo(this)});

arrayoftextboxes.bind(function(){foo(this)});

但似乎没有调用这些函数。

1 个答案:

答案 0 :(得分:3)

你可以这样做:

$('.textbox1, .textbox2, .textbox3').each(function() { foo(this); });

.each()调用会在其中创建一个闭包this引用您当前所在的DOM元素,但最好将您拥有的内容写为jQuery plugin。或者,如果您只在this内使用foo(而不是将DOM元素作为参数),则可以将其缩短为:

$('.textbox1, .textbox2, .textbox3').each(foo);

Here's a demonstration of that method

另外,请确保您在document.ready上运行此操作:

$(function() {
  $('.textbox1, .textbox2, .textbox3').each(foo);
});

否则DOM元素可能无法找到,使得该选择器返回一个空数组(因此无需运行)。