gpt4 book ai didi

javascript - 如何在纯 JavaScript 中找到匹配的 HTML 节点子树

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:42 24 4
gpt4 key购买 nike

我想基本上这样做:

鉴于我们的 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>)

一些注意事项:

  • 不会有任何通配符,比如匹配动态标签名称。
  • 这些只是部分树,属性值有时是子集,如上例中的类名。

最佳答案

只是无法告诉您如何将 span 与内部文本相匹配。除此之外,所有其他元素都可以使用 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>

关于javascript - 如何在纯 JavaScript 中找到匹配的 HTML 节点子树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57011630/

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