2015-09-17 132 views
1

我无法理解一件事。我有它接受作为参数DOM元素的id的函数:变量getElementbyId函数内部

对于实施例

HTML

<ol id="ol"> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
    <li>4</li> 
</ol> 

JS

function whatever(elem) { 
    var element = document.getElementById(elem); 
} 

初始化

whatever(ol) 

为什么当我在做console.log(element)的函数内,它显示的是null?我错过了什么?

+2

['document.getElementById()'](https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById)需要id作为字符串进行搜索。 - >'无论(“ol”)' – Andreas

+0

尝试'无论(“ol”)' – Lauromine

+0

@Lauromine我需要做的事情不仅对于“醇”这就是为什么我试图做一个功能 – yevgeniy

回答

2

whatever("ol")应该这样做。

0

我相信你的问题是双重的:

  1. 你已经有了一个范围问题。变量element是在whatever函数中定义和分配的,这意味着您无法在该函数之外看到它。你想返回从你的函数调用document.getElementId的结果。

    function whatever(id) { 
        return document.getElementById(id); 
    } 
    
  2. 您必须将表示元素ID的字符串传递给函数。

    var element = whatever("ol"); 
    

有了这两个东西的地方element现在将正确的HTML元素的引用。