这和$(这个)有什么区别

时间:2011-06-26 13:17:10

标签: jquery jquery-ui jquery-selectors

  

可能重复:
  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)之间有什么区别?

4 个答案:

答案 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。