首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只选择两个选择器中的一个

只选择两个选择器中的一个
EN

Stack Overflow用户
提问于 2012-08-22 23:07:32
回答 2查看 69关注 0票数 0

给定一个包含jQuery对象$c的元素,其中包含多个元素,其中包含具有类名tmpSelected并被选中的元素,我希望每个类名只从$c中选择一个元素,最好是tmpSelected。标记是以下内容的一个复杂版本:

代码语言:javascript
运行
复制
<ul id="a">
    <li class="selected"><a href="foo">Foo</a></li>
    <li><a href="bar">Bar</a></li>
    <li><a href="baz">Baz</a></li>
    <li><a href="biz">Biz</a></li>
</ul>
<ul id="b">
    <li><a href="woo">Woo</a></li>
    <li><a href="war">War</a></li>
    <li class="tmpSelected"><a href="waz">Waz</a></li>
    <li><a href="wiz">Wiz</a></li>
</ul>
<ul id="c">
    <li class="selected"><a href="xuu">Xuu</a></li>
    <li class="tmpSelected"><a href="xur">Xur</a></li>
    <li><a href="xuz">Xuz</a></li>
    <li><a href="xyz">Xyz</a></li>
</ul>

在这种情况下,我想要得到的是$("#a > .selected, #b > .tmpSelected, #c > .tmpSelected") --如果.selected元素有.tmpSelected的同级,我想避免它,并且我不想为$c的每个成员选择多个子元素,其中有$c = $("#a, #b, #c")

这就是我想出来的:

代码语言:javascript
运行
复制
var $c = $("#a, #b, #c");
var $selected = $c.map(function (idx, el) {
    var $el = $(el);
    var $tmpSel = $el.children(".tmpSelected");
    return $tmpSel.length ? $tmpSel : $el.children(".selected");
});

是否有一种不需要显式循环的合理方法来做到这一点?(P.S. -如果不存在.tmpSelected.selected子程序,则返回空选择器是可以的。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-22 23:19:12

这是一个选择器,但很乱。我相信它给出了正确的解决办法:

代码语言:javascript
运行
复制
$("ul > li.tmpSelected, ul:not(:has(li.tmpSelected)) > li.selected");

首先,您需要查找和.tmpSelected元素。然后查找只包含ul元素的任何.selected:has选择器查找子选择器,我使用:not选择器查找ul元素。然后,我只需获取子selected元素。

jsFiddle

票数 2
EN

Stack Overflow用户

发布于 2012-08-22 23:17:40

我建议这样做,这在概念上非常类似于您已经拥有的内容,但这保证了它只会为每个家长返回一个项目。

代码语言:javascript
运行
复制
var selected = $("#a, #b, #c").map(function() {
   var item = $(this).find(".tmpSelected");
   if (!item.length) {
       item = $(this).find(".selected");
   }
   return(item.get(0));
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12082603

复制
相关文章

相似问题

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