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

为什么最后一步同样是 $(".left a:first").text却控制的是第二个div里的元素了


    <script type="text/javascript">

        //通过.text()的回调,获取原本的内容,修改,在重新赋值

        $(".left a:first").text(function(idnex,text){

            return '增加新的文本内容' + text

        })

    </script>



之前是控制第一个div 里 第一个a

现在为什么控制第二个了


提问者:hhhs1s1s 2016-04-28 20:23

个回答

  • NextDay
    2016-04-29 13:37:57
    已采纳

       <script type="text/javascript">

            //通过.html()方法替换html结构

            $(".left div:first").html('整个div的子节点都被替换了')

        </script>

        <script type="text/javascript">

            //通过.text()的回调,获取原本的内容,修改,在重新赋值

            $(".left a:first").text(function(idnex,text){

                return '增加新的文本内容' + text

            })

        </script>


    这是你问的两段代码

    在第一段那里用html替换的是html结构 

    也就是说在下面下划线的3段已经被更改成了  <div class="div">整个div的子节点都被替换了 </div>  

     <div class="left first-div">

            <div class="div">

                <a>:first-child</a>

                <a>第二个元素</a>

                <a>:last-child</a>  

            </div>  

            <div class="div">

                <a>:first-child</a>

                <a>第二个元素</a>

                <a>:last-child</a>

            </div>

        </div>

    于是下一段$(".left a:first")时寻找到的是第二个div里的<a>

  • 慕粉初学者
    2016-07-17 21:20:50

      $(".left div:first").text('整个div的子节点都被替换了')我用text也会把div里的<a>替换掉了。也可以控制第二个

  • sky_fanny
    2016-04-29 13:57:15

    在第一段那里用html替换的是html结构 ,此时的div里没有<a>了;下一段$(".left a:first")时寻找到的是第二个div里的<a>