$(xxx).eq(0) 和 $(xxx)[0] 的区别是?
下面是下载的源码(即课程里讲的代码)
var imgWidth = $(".innerwraper img:first-child").eq(0).width();我用上面的写法测试出来的 .inner 的left值始终是0px;
console.log(imgWidth); 的结果是这样的:
ƒ ( margin, value ) {
var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
…把代码改成下面这样运行成功了, console.log(imgWidth); 的结果是640
var imgWidth = $('.innerwrapper img:first-child')[0].width;
或者
var imgWidth = $('.innerwrapper img:first-child').eq(0)[0].width;不明白这是为什么……
源码本身的index.html是可以实现轮播效果, console.log(imgWidth); 也是640, 但用到我的.html文件里就不行……
1
收起
正在回答
1回答
你好,
$(xxx).eq(0) 获取的是jq对象,$(xxx)[0] 获取的js对象,jq对象转化成了js对象
例如:

结果:

width()是jquery中的方法,前面跟着的是jq对象,如果是js对象是获取不了的,两种不能混用。
offsetWidth是js中获取宽度的方法。
例如:

自己可以测试下,然后对比着自己写的代码,看看是否出现混用的问题。
祝学习愉快!
响应式开发与常用框架 2018
- 参与学习 人
- 提交作业 2198 份
- 解答问题 5012 个
如果你有web端基础,既想进阶,又想进军移动端开发,那就来吧,我们专题为你带来的课程有HTML5、CSS3、移动基础、响应式、bootstrap、less等,让你在前端道路上畅通无阻!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星