jQuery删除复选框及其关联标签。

7

我有以下内容:

<input type="checkbox" class="oDiv" id="Parent"  name="divcorp[]" value="Parent"/>
<label for="Parent">Parent</label>

我可以使用以下代码正确地移除 checkbox :

$( "#Parent" ).remove();

然而,我如何同时删除与此复选框相关联的标签?
2个回答

16

鉴于“label”是唯一具有“for”属性(或“htmlFor”属性)的元素,您可以在选择器中指定“label”,避免隐式通配符选择器(以便减少查找元素所需的工作量)。 - David Thomas
太好了 - 谢谢 - 顺便问一下,是否可以根据它们的位置来删除它们?- 使用等于号,例如 :eq(6) - Homer_J
$('label[for="Parent"]').remove(); "" 缺失 - Qin Wang
谢谢,这些在这种情况下并不是真正需要的。请尝试不使用双引号。 - Adil

1
如果元素的id未知,但其value已知且其父元素的id已知,则可以执行以下操作:
代码(演示):
<div id="payment">
    <input id="RANDOM_GENERATED-1" type="checkbox" name="div[]" value="0" />
    <label for="RANDOM_GENERATED-1">Pay Now by CC</label><br/>

    <input id="RANDOM_GENERATED-2" type="checkbox" name="div[]" value="1" />
    <label for="RANDOM_GENERATED-2">Pay Now by PayPal</label><br/>

    <input id="RANDOM_GENERATED-3" type="checkbox" name="divo[]" value="2" />
    <label for="RANDOM_GENERATED-3">Pay Later by Check</label><br/>

    <input id="RANDOM_GENERATED-4" type="checkbox" name="divo[]" value="2"/>
    <label for="RANDOM_GENERATED-4">Pay Later by Cash</label><br/>
</div>

现在,如果有人想要删除所有“以后付款”元素(以及标签元素),那么需要删除值为2的元素。

$('#payment').find("input[value=2]").each(function () {
    $(this).remove();
    $('label[for=' + $(this).attr('id') + ']').remove();
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接