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);
});
私が間違っていることはありますか?
問題は、attrfoo
がコレクション内の最初の要素の ID を提供し、とにかく 1 回しか呼び出していないことです。
eachを使用して、jquery コレクションのすべての要素に対して関数を実行します。
$(window).scroll(function() {
$('div[id^="blblblb_"]').each(function(){
foo(this.id);
});
});
あなたのコメントに基づいて、この種の ID を持つオブジェクトのコレクションが増えていて、id ごとに foo が 1 回だけ呼び出されるようにしたい場合は、次のようにします。
var done = {};
$(window).scroll(function() {
$('div[id^="blblblb_"]').each(function(){
if (!done[id]) {
foo(this.id);
done[id] = 1;
}
});
});
しかし、私はユースケースについて疑問があります...