我想获取所有以 blblblb_ 开头的 ID 并运行我制作的单独 JS 函数。这是我所拥有的,它只获得第一个 ID:
$(window).scroll(function() {
var test = $('div[id^="blblblb_"]').attr('id');
foo(test);
});
任何想法我做错了什么?
我想获取所有以 blblblb_ 开头的 ID 并运行我制作的单独 JS 函数。这是我所拥有的,它只获得第一个 ID:
$(window).scroll(function() {
var test = $('div[id^="blblblb_"]').attr('id');
foo(test);
});
任何想法我做错了什么?
问题是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;
}
});
});
但我对用例持怀疑态度......