一个纠结的问题

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>存取元素的属性值</title>
    <style type="text/css">
      *{margin:0;padding:0;}
      ul{list-style:none;}
      .demo{1024px;margin:0 auto;border:5px solid #ccc;overflow:hidden;height:800px;}
      li{float:left;}
    </style>
    <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
      $(function() {
        $('<span>'+$('ul').width()+'</span>').appendTo('textarea')
      })
    </script>
  </head>
<body>
  <div class="demo">
    <ul>
      <li><img src="#" width="1000" height="800"/></li>
      <li><img src="#" width="1000" height="800"/></li>
      <li><img src="#" width="1000" height="800"/></li>
      <li><img src="#" width="1000" height="800"/></li>
    </ul>
  </div>
  <textarea></textarea>
</body>
</html>

  起源于对方法的理解不透彻,appendTo,append都是源自原生javascript中的appendChild,

$('<span>'+$('ul').width()+'</span>')是一个jquery对象,它被添加到textarea中,但textarea中应该包含的是文本节点。因此,加入的内容不会被渲染出来,但浏览器也不会报错,并且可以继续操作其中的span元素的属性
因此,想要改变textarea中的内容,jquery只能通过html(),text(),value()方法来修改,不能通过节点相关操作


原文地址:https://www.cnblogs.com/fsy0718/p/3070670.html