我注意到,如果你帶一個jQuery元素,你可以用attr方法改變每個屬性。那應該是對的?檢查一個屬性是否是一個有效的DOM屬性
嗯,這是正確的,但如果你這樣做:
$('p').attr('foo','bar');
如果檢查元素與Google Chrome工具或Firebug的,你會看到,事實上,它現在的價值叫做foo的屬性酒吧。
有沒有人知道一種方法來做一個先前的檢查,並避免這種情況?如果發生這種情況會出現什麼問題?
我注意到,如果你帶一個jQuery元素,你可以用attr方法改變每個屬性。那應該是對的?檢查一個屬性是否是一個有效的DOM屬性
嗯,這是正確的,但如果你這樣做:
$('p').attr('foo','bar');
如果檢查元素與Google Chrome工具或Firebug的,你會看到,事實上,它現在的價值叫做foo的屬性酒吧。
有沒有人知道一種方法來做一個先前的檢查,並避免這種情況?如果發生這種情況會出現什麼問題?
根據jQuery的documentation,
「在jQuery 1.6的,所述.attr()方法返回未定義對於尚未被設置的屬性 」。
所以,你可以先這樣稱呼它:
$('p').attr('foo');
,看看它是否會返回一個未定義的值。
但是如果一個img缺少一個alt屬性,這會失敗。 alt是有效的,foo它不是 – 2012-04-15 16:26:55
這是真的。我不確定如何做到你想要的,然後提前在規格中添加你關心的所有有效屬性,所以它們都在那裏。 – WildCrustacean 2012-04-15 16:54:30
「做一個先前的檢查,並避免這一點」。你能解釋這一點嗎? – 2012-04-15 16:20:47
你想要發生什麼?該功能正在做它設計的功能。 – 2012-04-15 16:22:38
是的,想象你正在從用戶那裏檢索兩個值,所以用戶可以放任何他想要的。如果他/她犯了一個錯誤,應該被忽略或給出錯誤 – 2012-04-15 16:23:22