您能否看一下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>

最佳答案

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

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



$('input:checkbox').unwrap();

<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>





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

关于javascript - 在展开复选框父项时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32785636/

10-12 12:44
查看更多