问答详情
源自:3-3 jQuery的属性与样式之.val()

jQuery的属性与样式之.val()问题

.val()方法

.val()无参数,获取匹配的元素集合中第一个元素的当前值

.val( value ),设置匹配的元素集合中每个元素的值

.val( function ) ,一个用来返回设置值的函数

 注意事项:

通过.val()处理select元素, 当没有选择项被选中,它返回null

.val()方法多用来设置表单的字段的值

如果select元素有multiple(多选)属性,并且至少一个选择项被选中, .val()方法返回一个数组,这个数组包含每个选中选择项的值

方法第一条跟注意事项的第一条不矛盾吗?

<select id="single">
        <option>慕课网</option>
        <option>博客园</option>
</select>

<select id="multiple" multiple="multiple">
        <option>imocc</option>
        <option>慕课网</option>
        <option>博客园</option>
    </select>

<p></p>

<p></p>

 $("p:first").text( $("#single").val() )获取到的值是“慕课网”而不是null

 $("p:last").text( $("#multiple").val() )获取到的值是null

是不是应该这样认为:当通过.val()处理的select元素有multiple多选这一项时,如果没有选项被选中则返回null;当通过.val()处理的select元素没有multiple多选这一项时,如果没有选项被选中则返回第一个option的值;


提问者:兜小麦 2017-05-03 11:43

个回答

  • Zzmkiv
    2017-07-27 10:10:05

    喔喔喔

  • qq_羽之翼_0
    2017-05-08 13:13:54

    不会矛盾,主要是因为有multiple这个属性,不存在矛盾的

  • 慕斯4233115
    2017-05-04 08:53:00

    是的  没错 因为下拉框默认选中第一个option的值