我正在努力完成这样的事情
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();
}
});
我有什么遗失的吗?
答案 0 :(得分:5)
使用.each()
时,回调会将DOM元素作为this
接收。您可以(并且必须)直接使用它,而不是再次使用jQuery包装它。
$('audio').each(function() {
if(this.currentTime != 0) {
this.pause();
}
});
this
$(this)
$(this)[0]
,而不是['Hello'][0]
而不是'Hello'
答案 1 :(得分:2)
$(this)
是一个jQuery对象,你需要使用$(this)[0]
或$(this).get(0)
来获取dom元素,但是你不应该这样做,只需直接使用this
。 / p>
$('audio').each(function(){
if(this.curentTime != 0){
this.pause();
}
});
答案 2 :(得分:-1)
你无法检查$(this).current Time,因为$(this)是一个jquery对象,
$('audio').each(function(){
if($(this)[0].curentTime != 0){
$(this)[0].pause();
}
});