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

来源:3-1 jQuery实现瀑布流布局图片定位

慕仙5237505

2017-11-19 22:57

问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"
                    })


写回答 关注

3回答

  • 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就会轻松很多的


    慕仙5237... 回复潇湘魅

    额,我其实看过好多js jq 了感觉学的里面没有细分似的,不太明白,具体看W3Cschool手册哪一部分呢?里面会有详细划分和介绍他们的区别那些吗? 求详解多谢

    2017-11-21 09:54:32

    共 3 条回复 >

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

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

    慕仙5237...

    第14行怎么感觉也像js 却又可以呢?hrr[index]=h 这句,感觉有点难区分js jq之间的方法写法

    2017-11-20 19:20:58

    共 1 条回复 >

瀑布流布局

瀑布流布局是网站比较流行的一种布局方式,教你实现三大方式

97759 学习 · 736 问题

查看课程

相似问题