2016-08-22 24 views
0

我該如何做到這一點,比方說我有這個在htlm中動態創建的清單。我想要的是,如果我使用.append()創建完全相同的清單並按下按鈕添加項目,它只會觸發單擊它們的按鈕,而不是它們兩個?我如何才能在jQuery中與兄弟姐妹一起工作?

<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追加新的清單。

+0

是否有與您的問題相關的任何js代碼?如果是這樣,請隨時添加它。我沒有得到你想要完成的事情。 – empiric

回答

0

如果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()等。