Javascript 使用jQuery属性选择器选择所有ID并运行函数
我想获得所有以blb_uu开头的ID,并运行我创建的单独JS函数。这是我所拥有的,它只获得第一个ID:Javascript 使用jQuery属性选择器选择所有ID并运行函数,javascript,jquery,Javascript,Jquery,我想获得所有以blb_uu开头的ID,并运行我创建的单独JS函数。这是我所拥有的,它只获得第一个ID: $(window).scroll(function() { var test = $('div[id^="blblblb_"]').attr('id'); foo(test); }); 你知道我做错了什么吗?问题是,给你集合中第一个元素的id,你只调用了一次foo 用于为jquery集合的所有元素执行函数: $(window).scroll(function() { $('d
$(window).scroll(function() {
var test = $('div[id^="blblblb_"]').attr('id');
foo(test);
});
你知道我做错了什么吗?问题是,给你集合中第一个元素的id,你只调用了一次foo
用于为jquery集合的所有元素执行函数:
$(window).scroll(function() {
$('div[id^="blblblb_"]').each(function(){
foo(this.id);
});
});
根据您的评论,如果您有越来越多的具有此类id的对象集合,并且希望确保每个id只调用一次foo,您可以这样做:
var done = {};
$(window).scroll(function() {
$('div[id^="blblblb_"]').each(function(){
if (!done[id]) {
foo(this.id);
done[id] = 1;
}
});
});
但我对用例表示怀疑 问题是,它为您提供了集合中第一个元素的id,并且您只调用了一次foo
用于为jquery集合的所有元素执行函数:
$(window).scroll(function() {
$('div[id^="blblblb_"]').each(function(){
foo(this.id);
});
});
根据您的评论,如果您有越来越多的具有此类id的对象集合,并且希望确保每个id只调用一次foo,您可以这样做:
var done = {};
$(window).scroll(function() {
$('div[id^="blblblb_"]').each(function(){
if (!done[id]) {
foo(this.id);
done[id] = 1;
}
});
});
但我对用例表示怀疑 这是可行的,但是我怎么能省略我已经有的id呢?我猜每次我开始滚动它都会重新开始?我不确定我是否理解你已经拥有的id的意思。你是说有这种id变化的对象列表,你只想对每个id执行一次foo吗?我编辑过,但这真的是你想要的吗?我无法想象你会需要这个。嘿,谢谢!我可以使用数组来查看是否存在相同的id。顺便提一下我用这个来追踪,但我怎么能省略我已经有的id呢?我猜每次我开始滚动它都会重新开始?我不确定我是否理解你已经拥有的id的意思。你是说有这种id变化的对象列表,你只想对每个id执行一次foo吗?我编辑过,但这真的是你想要的吗?我无法想象你会需要这个。嘿,谢谢!我可以使用数组来查看是否存在相同的id。顺便提一下我用这个来追踪