问答详情
源自:3-1 jQuery实现瀑布流布局图片定位

12行用eq 和 18行 $(value) 问题 求详解

问1:第12行代码:var h = boxs.eq(index).outerHeight();  这里为啥不能

var h = boxs【index】.outerHeight();
2:这里为啥是:$(value).css({
                        "position":"absolute",
                        "top": min+"px",
                        "left": mindex * w +"px"
                    })

不能写成:
boxs[index].css({
                        "position":"absolute",
                        "top": min+"px",
                        "left": mindex * w +"px"
                    })


提问者:慕仙5237505 2017-11-19 22:57

个回答

  • KoraWei
    2017-12-21 15:44:56

    <b>大</b>


  • 潇湘魅
    2017-11-20 21:56:29

    首先请了解:

            jquery选择器得到的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是 两种不同的对象类型,两者不等价,因此jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法. 乱使用会报错。但是jQuery是从js衍生出来的(所以都可以使用js的基本方法),但是jQuery是 经过一系列操作之后,将其封装成了一个个不同的方法。

    因此,hrr[index]=h或者hrr.push(h)在这里都是可行的,hrr数组是js的原生数组不是Dom原生对象也不是jQuery对象

    最后:学习jQuery,分清jQuery对象和DOM对象之间的区别之后,学习jQuery就会轻松很多的


  • 潇湘魅
    2017-11-20 17:17:29

    因为outerHeight()和.css是jQuery的方法,只有Query对象才能使用,而boxs[index]是Dom对象不能使用此方法,你可以试试 然后按F12看到控制台会报错,显示boxs[index]没有.css或者outerHeight()这个方法!