假设我有这样的文本框选择;
var arrayoftextboxes = $('.textbox1, .textbox2, .textbox3');
我有没有办法以比这更简单的方式调用每个函数? 它只需要调用一次。
arrayoftextboxes.each(function(i){foo(arrayoftextboxes[i]);});
我试过
arrayoftextboxes.load(function(){foo(this)});
和
arrayoftextboxes.bind(function(){foo(this)});
但似乎没有调用这些函数。
答案 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元素可能无法找到,使得该选择器返回一个空数组(因此无需运行)。