在jQuery 1.9 .attr(..)
方法不再返回的屬性值,而不是我們現在必須使用.prop(..)
。不幸的是這也適用於通過屬性選擇器指定即$("input[value=]")
屬性見 http://jquery.com/upgrade-guide/1.9/#attr-versus-prop-
和上.attr
和.prop
之間的差別好,所以討論:
我的情況
我目前使用類似$("input[value=]")
和$("select[value=]")
的選擇器來選擇沒有設置值的輸入元素。然而,這不再使用jQuery 1.9的作品,而不是我現在做這樣的事情:
var hasValue = function() { return !!($(this).val().length); };
var hasNoValue = function() { return !($(this).val().length); };
$("input").filter(hasValue);
$("select").filter(hasValue);
我實際的選擇是有點大,檢查有或沒有值,所以現在我不得不拆分多個元素我的1選擇器字符串放入多個選擇器中,並在兩者之間調用.filter(..)方法。
問題
是否有一個相當於$("[value=]")
,$("[value!=]")
,$("[value='abc']")
其使用屬性,而不是屬性的?如果沒有,是否有比使用.filter(hasValue)
和.filter(hasNoValue)
方法更清潔的方法?
感謝
看起來很乾淨,我 - 而且可能比以前的更好的解決方案(如以前的解決辦法只能從值集工作時,DOM被初始化,並且你當前的解決方案考慮是否有用戶輸入) – ahren 2013-03-20 00:48:44
不應該是'[value]'而不是'[value =]'?或者兩者都工作? – 2013-03-20 00:48:46
對我來說工作得很好 - > [** FIDDLE **](http://jsfiddle.net/ssPku/),它應該是'[value =「」]',只要'[value]'會選擇任何具有值屬性的元素。 – adeneo 2013-03-20 00:54:14