如果我做這個 -幫助我瞭解什麼是錯用我的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