可能重复:
What's the difference between $(this) and this in jQuery?
在jquery selector中,示例代码为:
<body>
<select name="garden" multiple="multiple">
<option>Flowers</option>
<option selected="selected">Shrubs</option>
<option>Trees</option>
<option selected="selected">Bushes</option>
<option>Grass</option>
<option>Dirt</option>
</select>
<div></div>
<script>
$("select").change(function () {
var str = "";
$("select option:selected").each(function () {
str += $(this).text() + " "; // I interested it this line
});
$("div").text(str);
})
.trigger('change');
</script>
</body>
在示例代码中,有一部分代码:
str += $(this).text() + " ";
我想知道,为什么这里不使用str += this.text() + " ";
?换句话说,为什么不使用this
但在代码部分使用$(this)
?在这种情况下,this
和$(this)
之间有什么区别?
答案 0 :(得分:3)
对于每次调用迭代回调(docs),jQuery的each
函数将this
设置为原始 DOM元素。在该原始元素上调用$()
会为您提供一个jQuery对象,使您可以访问jQuery函数,例如text
。
答案 1 :(得分:1)
this
是一个标准的javascript对象,$(this)
是jQuery包装的对象,它暴露了常规JavaScript没有的所有jQuery优点,如函数和属性。
有时候不需要jQuery包装器,可能会被认为是矫枉过正。
答案 2 :(得分:0)
出于同样的原因,您使用$("select")
而非select
。它将对象放入适当的jQuery上下文并返回jQuery包装的对象。
答案 3 :(得分:0)
$(“this”)是jquery,'this'是javascript。