getAttribute 没有返回正确的值

问题描述 投票:0回答:2

我有这个:

<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'));

错误是:

错误:'document.getElementById(...)' 为空或不是对象

javascript dom-events
2个回答
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
设置计时器来执行代码。


0
投票

在您的 id 属性周围加上引号:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.