2011-02-08 66 views
1

我最近從Prototype 1.6.1升級到1.7,並且我注意到我網站的一部分JS被破壞了。原型1.7 - 屬性選擇器被破壞了嗎?

我esentially這樣做:

$$("*[required=1]").each(function (el) { 
    // stuff 
}); 

這是選擇一堆表單元素。在1.6.1中,這個工作很完美。由於我升級到1.7,這不僅返回我的表格<select>元素,但不是<input> s ...

我知道Prototype從舊的選擇器引擎更改爲Sizzle在1.7,所以我假設它必須這樣做,但我很驚訝的東西這個基本會打破...

我使用錯誤的語法?任何想法我可以解決這個問題,而不降級到1.6?

回答

1

好的,試驗一下,我通過在屬性值周圍添加單引號來解決這個問題,但是這看起來是錯誤的,它基於CSS選擇器規範,對嗎?
特別是因爲它返回選擇的,而不是輸入的....

$$("*[required='1']").each(function (el) { 
    // stuff 
}); 

剛剛發佈此,以防有人絆倒在同樣的事情。