首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从所选列表中删除元素,而不是从dom中删除

问从所选列表中删除元素,而不是从dom中删除
EN

Stack Overflow用户
提问于 2016-03-03 16:54:28
回答 1查看 96关注 0票数 2

我需要在jQuery中有一个复杂的选择,如下所示:

代码语言:javascript
复制
var ctrls = $('.ctrl').not('.ctrl:disabled,.ctrl:parent:hidden');
ctrls.parents('.InsideContainerControl:hidden').remove();

很明显,第二行实际上将元素从dom中删除,而我正在寻找的是将其从选择列表中删除的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-03 17:00:25

像这样的东西应该管用,你先过滤掉父母,然后过滤掉孩子:

代码语言:javascript
复制
$('.InsideContainerControl')                   // get all parents
.not('.InsideContainerControl:hidden')         // remove hidden ones
    .find('.ctrl')                             // get all children from the remaining
    .not('.ctrl:disabled,.ctrl:parent:hidden') // remove disabled ones

注意这个,应该忽略1,2(父隐藏)和4(禁用):

​

代码语言:javascript
复制
var sel = 
    $('.InsideContainerControl')                   // get all parents
    .not('.InsideContainerControl:hidden')         // remove hidden ones
        .find('.ctrl')                             // get all children from the remaining
        .not('.ctrl:disabled,.ctrl:parent:hidden');// remove disabled ones

alert(sel.text());
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="InsideContainerControl" style="display: none">
  <button class="ctrl">1</button>
  <button class="ctrl" disabled>2</button>
</div>
<div class="InsideContainerControl">
  <button class="ctrl">3</button>
  <button class="ctrl" disabled>4</button>
</div>

​

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35778232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档