我正在开发一个用户脚本以与第 3 方网站进行交互,因此我无法控制它的布局方式。
它有一个列表,但从视觉上看,列表中的每个元素都没有包装在单个元素中,而是在 DOM 中表示为几个同级内联元素的“运行”。每个兄弟姐妹的运行由一个<br>
。
我正在寻找一个能够在单个 jQuery 对象中选择任何此类运行的选择器。这是格式的抽象:
<div class="list">
<a href="#" class="foo">Jack</a> <span class="bar">77</span><br>
<a href="#" class="foo">Fred</a> <span class="bar">23</span><span class="bar">11</span><br>
<a href="#" class="foo">Bob</a> <span class="bar">101</span><br>
<a href="#" class="foo">Joe</a> <span class="bar">12</span><br>
</div>
所以一种伪正则表达式符号中的模式总是:
foo
bar
{0,2}
br
选择器是否包含 final 无关紧要,br
但它必须包含后跟 0、1 或 2bar
的锚点。如果制作选择 0 或更多的东西更容易bar
那也没关系,尽管 DOM 中永远不会超过两个。
因为它在元素之间使用不间断的空格,所以选定的 jQuery 对象也包括它们可能很重要。
(我将重新排列列表中的项目,以便能够将它们视为单位。这也是一个很好的 jQuery 学习练习!)