gpt4 book ai didi

javascript - PrototypeJS:选择可见子项的奇数子集

转载 作者:行者123 更新时间:2023-11-28 03:00:34 24 4
gpt4 key购买 nike

这与我的 previous question about selecting visible elements 有关。现在,情况如下:假设我只想从元素的可见子元素集中选择奇数子元素。最好的方法是什么?

编辑:这是我的输入和预期输出的示例。

<!-- A list with some visible and invisible children -->
<ul class="stripe">
<li>Visible 1</li>
<li style="display:none;">Visible 2</li>
<li style="display:none;">Visible 3</li>
<li>Visible 4</li>
<li style="display:none;">Visible 5</li>
<li>Visible 6</li>
<li>Visible 7</li>
</ul>

<!-- Only the visible children. -->
<li>Visible 1</li>
<li>Visible 4</li>
<li>Visible 6</li>
<li>Visible 7</li>

<!-- The "odd" visible children. -->
<li>Visible 1</li>
<li>Visible 6</li>

我想出了两种方法。一个有效,但另一个无效。

// Method one: Returns the odd children whether they are visible or not. :(
var listChildren = $$("ul.stripe > li");
var oddChildren = allChildren
.findAll(function(el) { return el.visible(); })
.findAll(function(el) { return el.match("li:nth-child(odd)"); });
oddChildren.invoke("addClassName", "odd");

我现在正在做的事情如下:

// Method two: grouping!
var listChildren = $$("ul.stripe > li");
var oddChildren = listChildren
.findAll(function(el) { return el.visible(); })
.eachSlice(2, function(el) {
el[0].addClassName("odd");
});

这段代码似乎可以改进。谁能提出更好的方法来实现这一目标?

最佳答案

CSS 选择不适用于您想要的应用程序,它无法在 DOM 上下文之外的数组上正常工作。

您可以按如下方式执行此操作:

var index = 0;
var myChildren = $$("ul.stripe > li")
.select(function(e) { return e.visible(); })
.select(function(e) {return ++index % 2 == 1; });

关于javascript - PrototypeJS:选择可见子项的奇数子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1140976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com