2012-08-11 2 views
0

와 나는이JQuery와 .each 및 반복 원시 자바 스크립트

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

jQuery object! = DOM 요소. '$ (this)'를 사용하지 말고'this'. –

+0

아! 나는 그 것을 잊었다! – user962206

답변

5

.each() 콜백 this로서 DOM 요소를 수신하여. jQuery로 다시 래핑하는 대신 직접 사용할 수있다.

$('audio').each(function() { 
    if(this.currentTime != 0) { 
     this.pause(); 
    } 
}); 
  • 당신이 요소에 액세스 할 때,
  • 당신이 요소의 jQuery 함수를 호출 할 this$(this)[0]을 사용하지 마십시오 $(this)
  • 를 사용하여 사용, 그 ['Hello'][0] 대신 'Hello'
  • 처럼
+0

분명히 의미가 있습니다! 하지만 왜 내가 $ (this) [0]을 사용하면 안되나요? – user962206

+0

제 대답의 마지막 줄을보십시오. – ThiefMaster

2

$(this) 방금 ​​직접 this를 사용, 그렇게 안하면 $(this)[0] 또는 $(this).get(0)와 DOM 요소를 얻기 위해 필요하지만, JQuery와 객체입니다.

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

'$ (this) [0]'? 왜 그걸 할거야? – DCoder

+1

'var hello '] [0];'합법적 인 것 같습니다. –

+0

네, 맞습니다. $ (this) [0]'은 의미가 없습니다. – xdazz

-1

$ (this)는 jquery 객체이므로 $ (this) .currentTime을 확인할 수 없습니다.

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