从Jquery Mobile中的控制组中删除特定元素

时间:2015-03-06 18:12:12

标签: javascript jquery jquery-mobile

看一下这三个项目的清单:

<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中所示。您对如何实现此操作有什么建议吗?提前谢谢。

  • Jquery mobile 1.4.5

1 个答案:

答案 0 :(得分:2)

jQuery mobile将输入标签对包装到另一个容器中以进行样式设置。因此,您需要选择除第一个孩子以外的孩子并将其删除:

$("#delete-except").on("click", function (e) {
    var $group = $("#results").controlgroup();
    $group.controlgroup("container").children(':not(:first)').remove();
    $group.controlgroup("refresh");
});

演示:http://jsfiddle.net/qf9rL6L9/2/