0

私はこのようなことを達成しようとしています

var audios = $('audio');

for(var i = 0; i< audios.length;i++){
    if(audios[i].currenTime != 0)
        audios[i].pause();
}

しかし、JQueryを使用してそれを行うと、メソッドがないことが返されます。

$('audio').each(function(){
    if($(this).curentTime !=  0){
     $(this).pause();
    }
});

足りないものはありますか?

4

3 に答える 3

5

コールバックを使用.each()すると、DOM 要素を として受け取りますthis。jQueryで再度ラップする代わりに、直接使用できます(そして使用する必要があります)。

$('audio').each(function() {
    if(this.currentTime != 0) {
        this.pause();
    }
});
  • 要素にアクセスしたい場合は、this
  • 要素でjQuery関数を呼び出したい場合は、使用します$(this)
  • を使用$(this)[0]しないで['Hello'][0]ください。'Hello'
于 2012-08-11T10:25:47.327 に答える
2

$(this)$(this)[0]はjQueryオブジェクトであり、またはを使用してdom要素を取得する必要がありますが$(this).get(0)、それを行うべきではなく、this直接使用するだけです。

$('audio').each(function(){
    if(this.curentTime !=  0){
     this.pause();
    }
});
于 2012-08-11T10:24:14.653 に答える
-1

$(this) は jquery オブジェクトであるため、$(this).currentTime を確認することはできません。

$('audio').each(function(){
    if($(this)[0].curentTime !=  0){
     $(this)[0].pause();
    }
});
于 2012-08-11T10:25:59.350 に答える