有解开Checkbox Parent的问题

时间:2015-09-25 15:28:03

标签: javascript jquery

请你看看this demo,让我知道为什么我不能删除.check-wrap类如果存在?现在发生了什么.unwrap()甚至删除了.well

$("#un-mask").on("click", function() {
  if ($("input:checkbox").parent().is('.check-wrap'))
    $("input:checkbox").unwrap("<span class='check-wrap'></div>");
});
@import 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css';
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <div class="well">
    <input type="checkbox" />
    <span class="check-wrap">
    <input type="checkbox" />
</span>
    <span class="check-wrap">
    <input type="checkbox" />
</span>

  </div>
</div>

<button class="btn btn-default" id="un-mask">Yes</button>

1 个答案:

答案 0 :(得分:1)

jQuery&#39; .unwrap()方法不接受任何参数。它删除了每个匹配元素的父元素。由于您的div.well是第一个复选框输入的父级,因此也会将其删除。

解决此问题的一种方法是将第一个复选框输入包装在某种标签中,就像其他标签一样:

&#13;
&#13;
$('input:checkbox').unwrap();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <div class="well">
    <span class="check-wrap">
      <input type="checkbox" />
    </span>
    <span class="check-wrap">
      <input type="checkbox" />
    </span>
    <span class="check-wrap">
      <input type="checkbox" />
    </span>
  </div>
</div>

<button class="btn btn-default" id="un-mask">Yes</button>
&#13;
&#13;
&#13;

https://api.jquery.com/unwrap/