簡體   English   中英

通過id Javascript獲取元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM