2013-03-05 45 views
0

我希望我的JavaScript采取用户输入并发送到源元素上的src属性的url,但它不起作用。请帮帮我?JavaScript:将属性设置为视频元素

这里是我的脚本:

<input type="text" name="aniurl" size="60"><br> 
     <button class="btn" onclick="playVideo()" >button</button> 
    </div> 
    <video controls preload="auto" > 

    <source id="anir" type="video/mp4"> 

<script> 

function playVideo(){ 
var aniurl = document.getElementsByName("aniurl")[0].value; 
var ani2 = document.getElementById("anir")[0].value; 
ani2.setAttribute("src",aniurl); 
} 

</script> 
+0

'document.getElementById'不应返回一个数组。它应该返回一个特定的元素。 – aug 2013-03-05 03:54:01

回答

0
var ani2 = document.getElementById("anir")[0].value;` 

应该是

var ani2 = document.getElementById("anir"); 

getElementById返回单个元件(或空),那么setAttribute是DOM元素不是一个串value会给你的方法。

另外你是视频标签没有关闭。

0
var ani2 = document.getElementById("anir")[0].value; 

应该是:

var ani2 = document.getElementById("anir").value; 

getElementById()不返回数组。

+0

这只是部分正确。一半的答案是错误的答案。 – 2013-03-05 03:59:50

0
  1. id="anir"应附加到视频标签,而不是源 标签。
  2. getElementById后面不能使用[0],因为它返回元素,而不是元素数组。
  3. 关闭视频标签正确
  4. 你不应该使用.value用于获取anir元素,只要你想整个元素,设置源属性在随后的线。

最终结果:

<input type="text" name="aniurl" id="aniurl" size="60" value="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" /> 
<button class="btn" onclick="playVideo()">button</button> 

<video width="320" height="240" id="anir" controls> 
    <source src="movie.mp4" type="video/mp4"> 
Your browser does not support the video tag. 
</video> 
<script> 
    function playVideo() { 
     var aniurl = document.getElementById("aniurl").value; 
     var ani2 = document.getElementById("anir"); 
     ani2.setAttribute("src", aniurl); 
    } 
</script> 

Live Demo