Jquery和.parent()

Liz*_*ard 0 javascript jquery

鉴于以下标记和JS,为什么第一个语句起作用而seond不行?

jQuery的

$('.selector').change(function () {
  // does work
  $(this).parent(".controls").after( "<div class=\"control-group\">Test</div>" );

  // doesn't work
  $(this).parent(".control-group").after( "<div class=\"control-group\">Test</div>" );
}
Run Code Online (Sandbox Code Playgroud)

HTML

<div class="control-group">
  <label class="control-label" for="description">Section Type</label>
  <div class="controls">
    <select class="selector">
      // options
    </select>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Ser*_*gio 5

你应该使用:

  • .closest(),它只为你提供匹配该选择器的第一个元素(从当前选中的元素开始),或者
  • .parents()为你提供匹配该选择器的所有父级(从当前所选元素的父级开始).

所述.parent()方法只行进单级向上DOM树.