我有一个视频列表和一个视频播放器(div容器)。单击链接时需要在div容器中显示视频。视频代码由第三方提供,因此我想创建一个条件语句来检查基于它的id点击的内容。但是根本不工作..我很确定是缺少一些语法......提前谢谢
<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 :(得分:3)
您需要传递“this”值:
<a href="#" id="vidoeA" onClick="showVideo(this)">Video A</a>
或:
<a href="#" id="vidoeA" onClick="showVideo('videoA')">Video A</a>
然后在处理程序中:
function showVideo(anchor) { // assumes you used "this", like the 1st example
var videoId = anchor.id;
//
// ... show the video or whatever ...
//
}
答案 1 :(得分:2)
您需要调用getElementById并将元素的id作为参数传递:
if(document.getElementById("videoA"))
您包含的HTML实际上ID已拼写错误
<a href="#" id="vidoeA" onClick="showVideo()">Video A</a>
<a href="#" id="vidoeB" onClick="showVideo()">Video B</a>
应该是
<a href="#" id="videoA" onClick="showVideo()">Video A</a>
<a href="#" id="videoB" onClick="showVideo()">Video B</a>
您构建代码的方式将显示两个元素的警报。如果你想要点击元素的id,你必须从Event对象中获取它并在此基础上进行比较。
答案 2 :(得分:0)
document.getElementById("videoB")
您希望实际调用getElementById函数并将该ID作为参数传递。
目前的方式返回:
document.getElementById
>>function getElementById() { [native code] }
所以你实际上是在将这个函数指针与变量videoA(你的代码中似乎不存在)进行比较。
然而,根据您的应用程序判断,我实际上附加了一个onclick处理程序,以查看哪个被单击。
<a href="#" id="videoA" onClick="videoEvent(this)">Video A</a>
并在您的javascript中:
function videoEvent(videoLink){
// videoLink is now the ahref element
}
答案 3 :(得分:0)
如果那真的是你正在使用的代码,它就不起作用,因为你有一个拼写错误:你的HTML声明了两个ID,一个名为vidoeA
,另一个名为vidoeB
,而你的Javascript正在测试正确的拼写。
(您还需要在您的JS中将ID名称放在引号中)。
答案 4 :(得分:0)
您真正想要的是this:
<强> HTML 强>
注意:您的ID在您的问题中拼写错误。
<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.
}