我想获取所有以blblblb_开头的ID并运行我制作的单独的JS函数。这是我所拥有的,它只获得第一个ID:
$(window).scroll(function() {
var test = $('div[id^="blblblb_"]').attr('id');
foo(test);
});
任何想法我做错了什么?
答案 0 :(得分:5)
问题在于,attr会为您提供集合中第一个元素的ID,而您只需要调用foo
一次。
使用each为jquery集合的所有元素执行函数:
$(window).scroll(function() {
$('div[id^="blblblb_"]').each(function(){
foo(this.id);
});
});
根据您的评论,如果您拥有越来越多具有此类ID的对象,并且希望确保foo仅针对每个ID调用一次,则可以执行以下操作:
var done = {};
$(window).scroll(function() {
$('div[id^="blblblb_"]').each(function(){
if (!done[id]) {
foo(this.id);
done[id] = 1;
}
});
});
但我对用例感到怀疑......