问答详情
源自:3-1 DOM内部插入append()与appendTo()

DOM,size()

   <style type="text/css">
       html{
           cursor: help;
           font-size: 12px;
           font-family:Arial, Helvetica,sans-serif;
       }
       div{
           border: 1px solid #003a75;
           background-color: #ffff00;
           margin: 5px;
           padding: 20px;
           text-align: center;
           height: 20px;
           width: 20px;
           float: left;
       }
   </style>
   <script language="JavaScript" src="../lib/jquery-3.2.0.js"></script>
   <script language="JavaScript">
       //绑定点击事件
       document.onclick=function(){
           //调取JQuery中的size方法,获取当前文档所有的div个数
           //JQuery对象返回的是元素的集合或者说是元素的数组
           var i=$("div").size+1;
           //创建div元素
           var div=document.createElement("div");
           div.innerHTML=i;
           //将JQuery对象转化成DOM对象,调用DOM中的方法
           $("body").get(0).appendChild(div);
           //可以通过get方法,也可以通过下标来转换
           $("span")[0].innerHTML=i;
       }
   </script>
</head>
<body>
   页面中一共有<span>0</span>个div块,点击鼠标添加div
</body>

为什么i=size+1传不过来

提问者:小七辣个大苹果 2017-03-27 10:34

个回答

  • 夜莺z
    2017-03-28 23:47:44
    已采纳

    <script language="JavaScript">
       //绑定点击事件
       document.onclick=function(){
           //调取JQuery中的size方法,获取当前文档所有的div个数
           //JQuery对象返回的是元素的集合或者说是元素的数组
           var i=$("div").length;
           //创建div元素
           var div=document.createElement("div");
           div.innerHTML=i;
           //将JQuery对象转化成DOM对象,调用DOM中的方法
           $("body").get(0).appendChild(div);
           //可以通过get方法,也可以通过下标来转换
           $("span")[0].innerHTML=i;
       }
    </script>



    把size改成length就可以了,不要+1.为什么不呢,请看bostn老师的javascript深入浅出

  • trwzqh
    2017-06-01 11:54:46

       <script language="JavaScript">

       //绑定点击事件

       document.onclick=function(){

           //调取JQuery中的size方法,获取当前文档所有的div个数

           //JQuery对象返回的是元素的集合或者说是元素的数组

           var i=$("div").size();

           //创建div元素

           var div=document.createElement("div");

           div.innerHTML=i;

           //将JQuery对象转化成DOM对象,调用DOM中的方法

           $("body").get(0).appendChild(div);

           //可以通过get方法,也可以通过下标来转换

           $("span")[0].innerHTML=i;

       }

    </script>

    size你忘记()了,是可以,这个本来size()是整体的,就是计数量的!

  • 夜莺z
    2017-03-28 23:48:51

    在jquery 1.8后 length取代了 size()  ,因为length不需要返回一个函数调用,更优秀。

  • Ioncemore
    2017-03-27 14:17:24

    用for循环