我有一组带标签的复选框。您将选中任何复选框,然后点击删除按钮,该复选框&标签应该删除。
我的代码只删除复选框,相应的标签未删除。我需要删除复选框和标签。 我的代码是
<input type="checkbox" id="check1" /><label>Do you like summer?</label><br>
<input type="checkbox" id="check2" /><label>Do you like winter?</label><br>
<input type="checkbox" id="check3" /><label>Do you like both</label><br>
<input type="checkbox" id="check4" /><label>other</label><br>
<button>delete</button>
<script>
$("button").click(function () {
$("#"+$(":checked").remove());
});
</script>
答案 0 :(得分:1)
这些复选框没有标签。标签应具有要链接到for="checkX"
属性的复选框。
如果你这样做,那么选择复选框的标签也会更容易,因为你可以这样写一个选择器:
$("label[for='check1']").remove();
当然,你可以找到标签,正如Nicola Peluchetti的回答所示,但最好给标签一个'for'属性。它还改善了您网站的可访问性。实际上,标签的目的是链接到输入元素。如果没有此链接,您也可以使用span
。
[编辑]
使用复选框时,要求A,B,Both或None非常混乱。您只能使用A和B,或者您可以使用radiobuttons。现在,有人可以同时选择“A”和“两者”。
答案 1 :(得分:0)
$("button").click(function () {
var c = $(":checked");
c.next('label').remove();
c.remove()
});
如果您还要删除<br>
可以执行的操作:
$("button").click(function () {
var c = $(":checked");
c.nextUntil(':checkbox').not('button').remove();
c.remove()
});