0

鉴于以下标记和 JS,为什么第一个语句有效而第二个语句无效?

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>" );
}

HTML

<div class="control-group">
  <label class="control-label" for="description">Section Type</label>
  <div class="controls">
    <select class="selector">
      // options
    </select>
  </div>
</div>
4

2 回答 2

5

你应该使用:

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

.parent ()方法只在 DOM 树上向上移动一层

于 2013-10-09T07:01:04.240 回答
1

呸!我应该有RTFM!

.parents() 和 .parent() 方法是相似的,除了后者只在 DOM 树上向上移动一层

于 2013-10-09T06:52:53.420 回答