[英]Get element by id Javascript
我有一個視頻列表和一個視頻播放器(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>
您需要傳遞“ 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 ...
//
}
您需要調用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對象獲取它並在此基礎上進行比較。
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
}
如果這確實是您正在使用的代碼,那么它就不起作用,因為其中包含輸入錯誤:您的HTML聲明了兩個ID,一個稱為vidoeA
,另一個稱為vidoeB
,而您的Javascript正在測試正確的拼寫。
(您還需要將ID名稱放在JS中的引號中)。
你真正需要的是像這樣 :
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.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.