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

$("p").text( $("#single").val() );这一句返回的不应该是null么

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

根据这个注意事项,应该是个null,为什么在p中是显示慕课网的?我看到有人解释说如果选项都没有设置选中,那就默认第一个,那这样的话不是永远不会返回null了?

提问者:大块吃肉188 2016-09-10 20:17

个回答

  • jidashen
    2016-09-19 09:45:16

    <select id="single">

            <option>慕课网</option>

            <option>博客园</option>

        </select>

        <select id="multiple" multiple="multiple">

            <option selected="selected">imocc</option>

            <option>慕课网</option>

            <option selected="selected">博客园</option>

        </select>

    如果没有设置multiple="multiple"这个属性的话,

    <select id="single">

            <option>慕课网</option>

            <option>博客园</option>

        </select>

    此时 

     <option>慕课网</option>与 <option>博客园</option>都没有设置selected属性 ,

    当前值默认是第一个,所以会是   慕课网

    当是

    <select id="single">

            <option>慕课网</option>

            <option  selected=“selected”>博客园</option>

        </select>

    时: 取到的是   博客园 

    也就是说:   没有设置 <select id="multiple" multiple="multiple">中的multiple="multiple" 属性情况下

    取到的是 当前值。

    如果有设置multiple="multiple"这个属性的话,

    如:

     <select id="multiple" multiple="multiple">

            <option selected="selected">imocc</option>

            <option>慕课网</option>

            <option selected="selected">博客园</option>

        </select>

    此时返回的是数组,里边是选中的标签 [<option selected="selected">imocc</option>,<option selected="selected">博客园</option>]


    如果 虽然设置了 multiple="multiple"> 属性,但是 

     <option selected="selected">imocc</option>

            <option>慕课网</option>

            <option selected="selected">博客园</option>

    都没有设置 selected="selected" 选中的话,返回null


  • 谢南波
    2016-09-11 01:52:11

    的确是默认返回第一个值,当select选项下面没有option的时候,就是返回的null值,不信你可以试试。