我如何才能只与 jQuery 中的兄弟姐妹一起工作?

How can I work only with siblings in jQuery?

我怎样才能做到这一点,假设我在 html 中动态创建了这个清单。我想要的是,如果我使用 .append() 创建完全相同的清单并按下按钮添加项目,它只会触发被单击的按钮而不是它们两个?

<div class="checkbox">
   <input id="check1" type="checkbox" name="check" />
   <label for="check1"><span class="chk-text">Checklist One<span></label>
     <br>
   <input id="check2" type="checkbox" name="check" checked>
   <label for="check2"><span class="chk-text">Checklist two<span></label>
     <br>
   <input id="check3" type="checkbox" name="check">
   <label for="check3"><span class="chk-text">Checklist three<span></label>
   </div> <!-- END OF CHECKBOX -->
   <button class="add-item" type="button">Add</button>
</div> <!-- END OF ADD-ITEM -->

<div class="checkbox">
   <input id="check1" type="checkbox" name="check" />
   <label for="check1"><span class="chk-text">Checklist One<span></label>
     <br>
   <input id="check2" type="checkbox" name="check" checked>
   <label for="check2"><span class="chk-text">Checklist two<span></label>
     <br>
   <input id="check3" type="checkbox" name="check">
   <label for="check3"><span class="chk-text">Checklist three<span></label>
   </div> <!-- END OF CHECKBOX -->
   <button class="add-item" type="button">Add</button>
</div> <!-- END OF ADD-ITEM -->

jQuery:

$('body').on('click', '.add-item', function(){
    $('.checkbox').append('<br><input id="check' + idCounter + '" type="checkbox" name="check"><label for="check' + idCounter + '"><span class="chk-name">' + name + '</span></label>');
  });

我如何才能仅在我选择的 div 中添加新清单。

如果 add-item 按钮在您希望复选框进入的同一父容器内,您可以这样定位它们:

$('body').on('click', '.add-item', function(){
   $(this).parent().append('<br><input id="check' + idCounter + '" type="checkbox" name="check"><label for="check' + idCounter + '"><span class="chk-name">' + name + '</span></label>');

});

实际上 - 您的 HTML 看起来无效?您有 'add-item' 的结束标签,但没有匹配的开始标签。所以你的结构可能和我想的不一样。如果是这种情况,您可能需要上两级 parent,但想法是一样的。只要您的按钮和要添加复选框的位置在某处共享父级,这种方法就有效。如果他们不共享父级(或与所有其他复选框共享),请尝试其他方式遍历 DOM - 兄弟姐妹、$().nearest()