看一下这三个项目的清单:
<div id="results" data-role="controlgroup">
<input name="first" id="radio1" value="on" type="radio">
<label for="radio1">One</label>
<input name="second" id="radio2" value="off" type="radio">
<label for="radio2">Two</label>
<input name="third" id="radio3" value="other" type="radio">
<label for="radio3">Three</label>
</div>
要清空控制组我只是这样做:
var $group = $("#results").controlgroup();
$group.controlgroup("container").empty();
$group.controlgroup("refresh");
但是,当我尝试删除除第一个(第一个输入和第一个标签)之外的所有元素时,我这样做没有正面结果:
var $group = $("#results").controlgroup();
$group.controlgroup("container").not('input[name="first"], label[for="radio1"]').remove();
$group.controlgroup("refresh");
上面的代码会删除控制组中的所有项目,如this fiddle中所示。您对如何实现此操作有什么建议吗?提前谢谢。
答案 0 :(得分:2)
jQuery mobile将输入标签对包装到另一个容器中以进行样式设置。因此,您需要选择除第一个孩子以外的孩子并将其删除:
$("#delete-except").on("click", function (e) {
var $group = $("#results").controlgroup();
$group.controlgroup("container").children(':not(:first)').remove();
$group.controlgroup("refresh");
});