2012-04-15 114 views
0

我注意到,如果你帶一個jQuery元素,你可以用attr方法改變每個屬性。那應該是對的?檢查一個屬性是否是一個有效的DOM屬性

嗯,這是正確的,但如果你這樣做:

$('p').attr('foo','bar'); 

如果檢查元素與Google Chrome工具或Firebug的,你會看到,事實上,它現在的價值叫做foo的屬性酒吧。

有沒有人知道一種方法來做一個先前的檢查,並避免這種情況?如果發生這種情況會出現什麼問題?

+0

「做一個先前的檢查,並避免這一點」。你能解釋這一點嗎? – 2012-04-15 16:20:47

+0

你想要發生什麼?該功能正在做它設計的功能。 – 2012-04-15 16:22:38

+0

是的,想象你正在從用戶那裏檢索兩個值,所以用戶可以放任何他想要的。如果他/她犯了一個錯誤,應該被忽略或給出錯誤 – 2012-04-15 16:23:22

回答

0

根據jQuery的documentation

「在jQuery 1.6的,所述.attr()方法返回未定義對於尚未被設置的屬性 」。

所以,你可以先這樣稱呼它:

$('p').attr('foo');

,看看它是否會返回一個未定義的值。

+0

但是如果一個img缺少一個alt屬性,這會失敗。 alt是有效的,foo它不是 – 2012-04-15 16:26:55

+0

這是真的。我不確定如何做到你想要的,然後提前在規格中添加你關心的所有有效屬性,所以它們都在那裏。 – WildCrustacean 2012-04-15 16:54:30

相關問題