2013-02-18 65 views

回答

22

請勿使用逗號將兩個條件應用於同一元素。

$('input[name=weekday][value=1]').attr("checked", "checked"); 

作爲一個側面說明,你應該使用prop()而不是attr()性能jQuery doc建議和@tyleha指出。

從jQuery 1.6開始,對於尚未設置的屬性 ,.attr()方法返回undefined。要檢索和更改DOM屬性(如 )表單元素的選中狀態,選中狀態或禁用狀態,請使用 .prop()方法。

您可以使用.prop(propertyName, value)來設置checked屬性,如下所示。

$('input[name=weekday][value=1]').prop("checked", true); 
+0

您應該(需要?)使用'.prop'而不是'.attr'來檢查這些DOM屬性:http://api.jquery.com/attr/ 所以只需要'.prop(「檢查「)'應該做的訣竅 – tyleha 2014-12-31 18:36:42

+0

謝謝@tyleha,你是正確的使用prop()在這裏。但.prop(「檢查」)將獲得屬性的值而不是設置。設置屬性.prop(「checked」,true);將會被使用。 – Adil 2015-01-01 04:26:01

1

不需要逗號。嘗試:

var checked = $('input[name = weekday][value =1]').attr("checked", "checked"); 
1

與此

$('input[name=weekday][value=1]').attr("checked", "checked"); 
1

逗號分隔多個選擇嘗試,所以你要搜索命名爲「平日」 投入與價值= 1

任何類型的元素要在一個選擇器中結合這兩個標準,只需將它們相加即可:

$('input[name=weekday][value=1]').attr("checked", "checked"); 
0
<input type="radio" name="some[thing]" value="one"> 
<input type="radio" name="some[thing]" value="two"> 
<input type="radio" name="some[thing]" value="three"> 
<input type="radio" name="some[thing]" value="four"> 
<input type="radio" name="some[thing]" value="five"> 
<input type="radio" name="some[thing]" value="six"> 

alert('1'); 
$("input[value='four'][name='some\\[thing\\]']").attr("checked",true); 
alert('2'); 
$("input[value='four'][name='some\\[thing\\]']").attr("checked",false); 
alert('3'); 
相關問題