getAttribute不起作用

时间:2011-02-15 22:27:25

标签: javascript javascript-events

我有这个

<body>
    <div id=myid0 i='Keliot'> 0</div>
    <div id=myid1 i='Ukonh'>     1</div>
    <div id=myid2 i='plotis'> 2</div>
</body>

我正在尝试获取i的值,但我为myid0获取空值。这就是我正在使用的

alert(document.getElementById('myid0').getAttribute('i'));

错误是

Error: 'document.getElementById(...)' is null or not an object

2 个答案:

答案 0 :(得分:1)

确保在选择的元素之后放置代码,以便在您尝试选择它们时存在。

示例: http://jsfiddle.net/dS4t5/

<body>
    <div id=myid0 i='Keliot'> 0</div>
    <div id=myid1 i='Ukonh'>     1</div>
    <div id=myid2 i='plotis'> 2</div>

    <!-- script is placed here, after the elements have loaded -->
    <script type="text/javascript">
        alert(document.getElementById('myid0').getAttribute('i'));
    </script>
</body>

@typo.pl所述,这只是确保DOM元素存在的一种方法。

您可以将代码放在一个函数中,然后从body onload="myfunc();"window.onload = myfunc;调用它。或者您可以使用不太精确的方法设置带setTimeout的计时器来执行代码。

答案 1 :(得分:0)

在id属性周围加上引号:

<body>
    <div id='myid0'>0</div>
    <div id='myid1'>1</div>
    <div id='myid2'>2</div>
</body>

另外,我建议不要创建自定义元素属性。我不是标准的xHTML元素属性。