2011-04-05 8 views
0

J'ai une liste de vidéos et un lecteur vidéo (conteneur div). Besoin d'afficher une vidéo dans le conteneur div lorsqu'un lien est cliqué. Les codes vidéo sont donnés par un tiers, donc je veux créer une déclaration conditionnelle pour vérifier ce qui est cliqué en fonction de son identifiant. Mais ne fonctionne pas du tout .. Je suis assez sûr est une syntaxe manquante ... Merci à l'avanceGet element par id Javascript

<script type="text/javascript"> 
function showVideo() 
{ 

if(document.getElementById == videoA) 
{ 
    alert("videoA") 
} 

if(document.getElementById == videoB) 
{ 
    alert("videoB") 
} 
} 
</script> 

-------------------- 
<a href="#" id="vidoeA" onClick="showVideo()">Video A</a> 
<a href="#" id="vidoeB" onClick="showVideo()">Video B</a> 
+0

Désolé sur le sort miss (dyslexiques ..) ... et merci pour pour toutes les réponses. Vous êtes sauveteur .... – rex

Répondre

3

Vous devez passer dans la "cette" valeur:

<a href="#" id="vidoeA" onClick="showVideo(this)">Video A</a> 

ou:

<a href="#" id="vidoeA" onClick="showVideo('videoA')">Video A</a> 

ensuite dans le gestionnaire :

function showVideo(anchor) { // assumes you used "this", like the 1st example 
    var videoId = anchor.id; 
    // 
    // ... show the video or whatever ... 
    // 
} 
+2

Merci, upvoters, de ne pas avoir remarqué la faute de frappe que je viens de corriger :-) – Pointy

0
document.getElementById("videoB") 

Vous voulez appeler réellement la fonction getElementById et passer dans l'ID comme paramater.

Les rendements façon actuelle:

document.getElementById 
>>function getElementById() { [native code] } 

Donc vous comparez réellement que le pointeur de fonction à une Vidéoa variable (qui ne paraît pas réellement exister dans votre code). Cependant, à en juger par votre application, j'attacherais en fait un gestionnaire onclick pour voir lequel a été cliqué.

<a href="#" id="videoA" onClick="videoEvent(this)">Video A</a> 

et dans votre javascript:

function videoEvent(videoLink){ 
    // videoLink is now the ahref element 
} 
2

Vous devez appeler le getElementById et passer l'id de l'élément comme paramètre:

if(document.getElementById("videoA")) 

Le code HTML que vous avez inclus ont fait l'id mal orthographié

<a href="#" id="vidoeA" onClick="showVideo()">Video A</a> 
<a href="#" id="vidoeB" onClick="showVideo()">Video B</a> 

le devrait être

<a href="#" id="videoA" onClick="showVideo()">Video A</a> 
<a href="#" id="videoB" onClick="showVideo()">Video B</a> 

La façon dont vous avez structuré votre code sera afficher une alerte pour les deux éléments. Si vous voulez cliquer sur l'identifiant de l'élément, vous devrez l'obtenir de l'objet Event et faire une comparaison sur cette base.

0

Si c'est vraiment le code que vous utilisez, il ne fonctionne pas parce que vous avez une faute de frappe dans ce: votre HTML déclare deux ID, l'un appelé vidoeA et l'autre appelé vidoeB, alors que votre Javascript teste pour l'orthographe correcte.

(Vous devez également mettre le nom d'identité entre guillemets dans votre JS).

0

Ce que vous voulez vraiment quelque chose comme this est:

HTML
Note: Votre ID de l'orthographe ont été incorrectement dans votre question.

<a href="#" id="videoA" onClick="showVideo(this)">Video A</a> 
<a href="#" id="videoB" onClick="showVideo(this)">Video B</a> 

JavaScript

function showVideo(elem) { 
    if(elem.id == "videoA") { 
     alert("videoA") 
    } 
    if(elem.id == "videoB") { 
     alert("videoB") 
    } 
    //or better yet, just: 
    //alert(elem.id); 
    return false; //Stops you from following the link. 
}