我基本上想这样做:
鉴于我们的DOM如下所示:
<div class="foo bar">
<ul class="a b c">
<li class="even">
<span id="span1">Hello</span>
</li>
<li>
<span id="span2">World</span>
</li>
<li class="even">
<span id="span3">!!!</span>
</li>
</ul>
</div>
如何说出它是否与此模式匹配?
<ul class="a c">
<li class="even">
</li>
</ul>
或者与该模式匹配:
<ul class="b">
<li>
<span>Hello</span>
</li>
</ul>
类似这样的东西:
matches(el, <ul class="b"><li><span></span></li></ul>)
一些注意事项:
答案 0 :(得分:0)
只是无法告诉您如何将跨度与内部文本匹配。除此之外,可以使用javascript中的CSS选择器检查所有其他元素,如下所示:
if (document.querySelector("ul.a.c > li.even"))
console.log("Patern 1 found")
if (document.querySelector("ul.b > li > span"))
console.log("Patern 2 found")
if (document.querySelector("ul.a.c > li.odd"))
console.log("Patern 3 found")
<div class="foo bar">
<ul class="a b c">
<li class="even">
<span id="span1">Hello</span>
</li>
<li>
<span id="span2">World</span>
</li>
<li class="even">
<span id="span3">!!!</span>
</li>
</ul>
</div>