如果我做这个 -帮助我了解什么是错用我的javascript
alert(anchor);
我得到这个 -
“[对象HTMLLIElement]”
...好,是的,这是我想要的元素。所以我想获得这个元素ID。
所以我测试它像这样:
alert(anchor.attr("id"));
...但我没有得到任何警告,什么都没有。我不能选择一个元素。我做错了什么,我不明白什么?
如果我做这个 -帮助我了解什么是错用我的javascript
alert(anchor);
我得到这个 -
“[对象HTMLLIElement]”
...好,是的,这是我想要的元素。所以我想获得这个元素ID。
所以我测试它像这样:
alert(anchor.attr("id"));
...但我没有得到任何警告,什么都没有。我不能选择一个元素。我做错了什么,我不明白什么?
有两个问题:
.attr()
是一个函数的jQuery对象有,你有一个DOM元素(你需要$(anchor)
针对元素使用jQuery方法)。.id
property将工作(和快得多),像这样:alert(anchor.id);
+1提到'anchor.id'的速度增加。我厌倦了看到人们编写低效的代码,只是因为他们不了解框架的开销。 – stevendesu 2010-10-28 22:45:18
这是因为attr
不是anchor
上定义的方法或属性。 anchor
是一个原始HTML元素对象。这不是一个jQuery对象(我假设你使用jQuery,因为你使用了attr
方法)。
要获得该ID,所有你需要做的是anchor.id
。如果你真的想使用attr
,你可以做jQuery(anchor).attr("id")
。
attr()
函数是jQuery的一部分,但您试图从纯DOM对象中获取它。您要么使用$(anchor)
(用jQuery封装元素),要么改用anchor.getAttribute("id")
。
或更确切地说:'anchor.id'。 – 2010-10-28 22:27:02
如果你正在使用jQuery,那么你就需要这样的:
alert($(anchor).attr("id"));
你使用jQuery?就像你的.attr语法意味着 – Adam 2010-10-28 22:25:44
是的!看起来我发现我的问题。每个人都撞到了头上。 – Dave 2010-10-28 22:33:58
此外,你应该真的使用控制台来调试('console.log'而不是'alert()')。警报非常困难。 http://getfirebug.com或者你的浏览器内置的开发工具真的有帮助。 – 2010-10-28 22:44:38