2014-02-13 4 views
1

Я новичок в JQuery, это основной вопрос, и я не понимаю, почему следующий код не работает. Пожалуйста, помогите мне разобраться.JQuery с элементом «audio» в HTML5

<!DOCTYPE html> 
    <html> 
    <head> 
    <script src="http://code.jquery.com/jquery-1.10.2.min.js"> 
    </script> 
    <script> 

     function test() 
     { 
      var audios=$("#audio1"); 
      alert(audios.volume); //This line does not work, it returns "undefined" 
      audios.volume=0.5; //This line does not work 
      // audios.hide(); - This works fine 
     } 
    </script> 
    <title>This is a test</title> 
    </head> 

    <body> 
       <input type="button" value="Test" onclick="test()"> 
       <audio id="audio1" controls autoplay> 
        <source src="http://zz.qz828.net/06/three.mp3" type="audio/mpeg"> 
        Your browser does not support the audio element. 
       </audio> 
    </body> 
    </html> 

Понятия не имею, почему эти две линии не работает:

alert(audios.volume); //This line does not work 
audios.volume=0.5; //This line does not work 

Спасибо!

ответ

2

необходимо установить свойство тома в элемент dom, $("#audio1") возвращает объект jQuery, который не имеет свойства volume.

Таким образом, вы должны получить доступ к элементу DOM от объекта JQuery, а затем установить свойство или использовать .prop(), чтобы установить значение свойства

audios[0].volume=0.5; 
//or audios.prop('volume', 0.5); 
+0

Хорошо, я попробовал, это работает. Благодарю. –

+0

Похоже, есть разница между объектом jquery и объектом DOM, правильно? –

+0

@JackZhang возвращает объект [jQuery Object] (http://learn.jquery.com/using-jquery-core/jquery-object/), а не элемент dom –