【问题标题】:PrototypeJS: Selecting visible elementsPrototypeJS:选择可见元素
【发布时间】:2011-12-28 01:20:18
【问题描述】:

我正在尝试制定一个选择器来选择一组可见元素。我们的应用程序使用 Prototype JavaScript 框架,版本 1.6.0.3。

我正在使用的标记如下:

<ul>
    <li style="display:none;">1 Hidden</li>
    <li style="display:none;">2 Hidden</li>
    <li style="">3 Visible</li>
    <li style="display:none;">4 Hidden</li>
    <li style="display:none;">5 Hidden</li>
    <li style="display:none;">6 Hidden</li>
    <li>7 Visible</li>
    <li style="">8 Visible</li>
</ul>

如您所见,某些元素可能有样式属性,但只有隐藏的元素包含字符串“display:none;”。我需要选择可见的&lt;li&gt; 元素,其中可见性定义为“不包含显示:无”。

我到目前为止所做的尝试:

var visibleItems = $$('li[style*="display:none"]'); // Yields: [ ]
var visibleItems = $$('li[style*="display"]'); // Yields: [li, li, li, li, li], but isn't specific enough

想法?理想情况下,我希望它尽可能紧凑,但我会尽我所能。

是的,我知道jQuery can do this,但我不想在这个应用程序中引入另一个框架,因为其中大部分已经依赖于 Prototype。

【问题讨论】:

    标签: javascript css-selectors prototypejs


    【解决方案1】:

    您可以使用findAll 函数过滤项目:

    var notVisible = $$('li').findAll(function(el) { return !el.visible(); });
    

    【讨论】:

    • 我有同样的问题,如果元素被 CSS 隐藏,这个答案将不起作用。在这种情况下,函数将它们返回为可见。我还在寻找和回答……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多