3

一連の可視要素を選択するセレクターを作成しようとしています。このアプリケーションでは、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;」が含まれています。<li>可視性が「display:none を含まない」と定義されている場合、可視要素を選択する必要があります。

私がこれまでに試したこと:

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

アイデア?理想的には、これをできるだけコンパクトにしたいのですが、私は得ることができるものを取ります。

はい、 jQuery がこれを実行できることは知っていますが、このアプリケーションに別のフレームワークを導入したくありません。その多くは既に Prototype に依存しているためです。

4

1 に答える 1

10

findAll関数を使用して項目をフィルタリングできます。

var notVisible = $$('li').findAll(function(el) { return !el.visible(); });
于 2009-04-28T05:34:03.393 に答える