javascript - $ ('selector' ) 和 $ ('selector' )[0] 在 jquery 中的区别

标签 javascript jquery html object dom

假设我有一个 <div class="test" style="width:200px"></div> ,请考虑以下事项:

var m = $('.test')[0];
var $md = $(m);
console.log($md.width()); //200

var o = $('.test');
console.log(o.width());  // 200


console.log(m);   // <div class="test" style="width:200px">
console.log($md);  // Object{ context: <div.test> ..... } 
console.log(o);   // Object{ length:1 , ..... }

基本上我可以申请 width var $md 上的方法或 var o , 如果输出相同,那么第一种和第二种方式有什么区别?
我看到 md 都是和 o是对象,但在控制台输出中它们并不完全相同,它们有何不同?谢谢。

最佳答案

在这里你得到第一个元素匹配的选择器,它返回普通的js实例。

var m = $('.test')[0]; 

在这里,您再次将它包装在一个 jQuery 对象中。

var $md = $(m);

width()方法返回集合中第一个元素的宽度方法之间没有区别,直到您在页面上有多个 .test 元素并想像这样更改它们:

 $('.test').width(100)

此代码会将页面上每个 .test 元素的宽度设置为 100px。

但这只会继续改变集合中第一个匹配的元素:

 var el = $('.test')[0];
 $(el).width(100);

有根据你的代码合成的例子,我觉得这样写比较好:

$('.test').first().width(100);

$('.this:first').width(100);

关于javascript - $ ('selector' ) 和 $ ('selector' )[0] 在 jquery 中的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41829233/

相关文章:

html - 样式 ="background-color: #FF0000"在 chrome 或 safari 中不起作用?

javascript - 如何从 TAB 导航中跳过表单元素?

javascript - 正确减去jquery中的变量

javascript - Three.js - 创建带有纹理的平面圆..?

javascript - 显示 Rails 3 UJS 的微调器出现类型错误

javascript - 如何选择不是 'this' 的元素?

javascript - 使用ajax读取php生成的XML文件并使用javascript输出到html

html - 元素相对于文本输入的位置

javascript - 如何在 Angular 4 中使用 jquery 插件

javascript - 将项目符号文本从 word 复制到 html 文本区域