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