2016-05-05 5 views
1

Ich versuche, die Quelle von Videos und Sound-Dateien auf meiner Website aus JSON-Dateien zu laden. Ich tue dies für andere Elemente auf meiner Seite mit:bekommen ID von HTML <source>

`$('#cimg').attr('src', jsonObj.cloud[0].refimage)` 

Diese für Dinge wie Bilder zu funktionieren scheint, aber nicht für HTML 5 Video-und Audio-Dateien, wo es Quell-Tags wie folgt:

<source id="cvid" src="" type="video/mp4"> 

Ich denke, dass Sie IDs in Quell-Tags nicht erstellen können, da die gleiche Methode für Img-Tags funktioniert.

Weiß jemand wie ich die ID von einem Quell-Tag geben oder zugreifen kann?

Antwort

2

könnten Sie greifen nur den Tag:

console.log($('source').attr('id')) 

JSFiddle with your code

+0

im nicht sicher, wie Sie meinen. Ich muss es in der $ (# # cimg '). Attr Abschnitt –

+0

auch ich habe mehr als ein Quell-Tag, so würde dieser Weg nicht funktionieren –

0

Sie das <source> Element wie jedes andere Element zugreifen können, sei es durch id.

Was Sie jedoch vergaßen, ist, dass, wenn Sie seine src Attribut ändern, können Sie die .load() Methode des Containers <video> Element verlangen.

var vid = document.getElementById('vid'); 
 
var source = document.getElementById('cvid'); 
 
var src = ['http://www.sample-videos.com/video/mp4/240/big_buck_bunny_240p_50mb.mp4', 'http://vjs.zencdn.net/v/oceans.mp4']; 
 
var s = 0; 
 

 
document.getElementById('btn').onclick = function(){ 
 
    
 
    // change the <source> 's src 
 
    cvid.src = src[++s%src.length]; 
 
    // ask the <video> to load this new source 
 
    vid.load(); 
 

 
    // could also be 
 
    // cvid.parentNode.load(); 
 
    
 
    }
<button id="btn">switch video source</button><br> 
 
<video controls muted autoplay id="vid"> 
 
<source id="cvid" src="http://www.sample-videos.com/video/mp4/240/big_buck_bunny_240p_50mb.mp4" type="video/mp4"> 
 
</video>