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

关于html()和val()

里面说“另外.html()方法使用在多个元素上时,只读取第一个元素;.val()方法和.html()相同,如果其应用在多个元素上时,只能读取第一个表单元素的"value"值“

<script type="text/javascript">

        //单个select,返回第一个

        $("p").text( $("#single").val() );

    </script>

中只出来了慕课网 但是把val()改成html()出来了

<option>慕课网</option>

 <option>博客园</option>

不是说html和val都只读取第一个元素吗 为什么html读取了两个

提问者:qq_失眠眠_0 2019-03-21 16:08

个回答

  • Gobbb
    2020-04-03 23:14:21

    $("#single") 只有一个啊,没问题啊,你说得那两个<option>是HTML内容,没有一个两个之说

  • keydew
    2019-05-05 09:47:04

    "html()读取第一个元素的html内容"意思是:在调用的时候,譬如E.html(),这个E可以是单个元素,也可以是元素集合,当E是元素集合时,这个调用返回的就是E[0]元素的html内容

    而不是:返回元素的html内容中的第一个元素

    题中把val()换成html()后,也就是$("#single").html(),这里$("#single")返回的就是单个select元素,所以会把这个select的所有html内容都显示出来。

  • 慕UI8429273
    2019-03-25 18:15:06

    <script type="text/javascript">

            //单个select,返回第一个

            //$("p").text( $("#single").val())

    $("p").text( $("#single>option").html())

        </script>