jQuery .val()和.attr('value')有什么区别?

我认为标题是足够清楚的

.val()以一种有用的方式处理所有的inputtypes元素,包括<select> …甚至在<select multiple> ,checkboxes和radio button(其中.val()获取或设置一个数组选定的值不只是一个string)。

所以基本上他们服务于不同的目的,尽pipe.attr('value')在某些情况下的行为是一样的,比如文本框。 首选的方法是.val()在任何地方都能获得一致的行为。


只是踢,这是一个鲜为人知的checkbox的例子,使.val()方便:

 <input name="mytest" type="checkbox" value="1"> <input name="mytest" type="checkbox" value="2"> <input name="mytest" type="checkbox" value="3"> <input name="mytest" type="checkbox" value="4"> 

你可以这样做:

 $("input[name='mytest']").val([1, 2, 3]); 

….将检查前3个盒子。 你可以在这里试试 。

另外.attr('value')返回编辑input字段之前的值。 .val()返回当前值。