簡體   English   中英

搜索div ID時Document.getelementbyId返回null

[英]Document.getelementbyId returns null when searching for div id

我目前正在嘗試顯示兩個滾動條,一個在頂部,一個在底部。 但是,我的document.getelementbyid始終返回null,我無法弄清原因。 如果有幫助,我也使用母版頁。

<script type="text/javascript">
    function DoubleScroll(element1) {
        var element = document.getElementById(element1);
        if (!element) return;
        var scrollbar = document.createElement('div');
        scrollbar.appendChild(document.createElement('div'));
        scrollbar.style.overflow = 'auto';
        scrollbar.style.overflowY = 'hidden';
        scrollbar.style.width = '500px';
        scrollbar.firstChild.style.width = element.scrollWidth + 'px';
        scrollbar.firstChild.style.paddingTop = '100px';
        scrollbar.firstChild.appendChild(document.createTextNode('\xA0'));
        scrollbar.onscroll = function () {
            element.scrollLeft = scrollbar.scrollLeft;
        };
        element.onscroll = function () {
            scrollbar.scrollLeft = element.scrollLeft;
        };
        element.parentNode.insertBefore(scrollbar, element);
    }


    DoubleScroll(document.getElementById('doublescroll'));
</script>

這是我要達到的div ID:

<div id="doublescroll" style=" width: 100%; height: auto;">

您兩次調用document.getElementById :一次是在函數參數中,另一次是在函數內部。 刪除其中之一,它應該可以工作。

PitaJ有一件正確的事,您正在嘗試使用DOM引用作為id。 如果您希望它超載,則始終可以進行類型檢查。

function DoubleScroll(element1) {
    var element = typeof element1 === "string" ? document.getElementById(element1) : element1;

另一個問題可能是您在頁面上呈現元素之前調用了該元素。 您不能在元素存在之前對其進行引用。

移動行DoubleScroll(document.getElementById('doublescroll')); 到正文底部,稱其為onload或准備好文檔。

因為element1是一個對象,所以您將獲得NULL。 當您在DoubleScroll函數中調用document.getElementById時,由於getElementById不能接受對象作為參數,因此返回null。

這是將元素設置為等於element1的方法:

        var element = element1;

您可以在這里找到一個有效的示例: http : //jsfiddle.net/mtruty/Bx2JL/1/

綜上所述,設置element = element1是多余的。 為什么不只使用您要傳遞的對象?

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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