javascript - 如何检查 CSS 选择器是否在同一个 HTML 标记行上
问题描述
如果不使用document.querySelector
or document.querySelectorAll
,我如何检查 CSS 选择器是否在同一 HTML 行上。
let tag = "div";
let id = "some_id"
let classs = "another_class"
if (document.getElementsByTagName(CSS.escape(tag)) || document.getElementById(CSS.escape(id)) || document.getElementsByClassName(CSS.escape(classs))) {
console.log("cool");
} else {
console.log("not cool");
}
<div id="some_id" class="some_class some_other_class"></div>
<img class="another_class"></img>
它应该返回not cool
,因为 CSS 选择器不在同一行,而如果我使用选择器div#some_id.some_class
,它会返回cool
.
解决方案
首先解析ID,因为它是唯一的,然后将其他资格与它进行比较。
let tag = "div";
let id = "some_id"
let classs = "another_class";
let idMatch = document.getElementById(CSS.escape(id));
if (idMatch &&
idMatch.tagName == tag.toUpperCase() &&
idMatch.classList.contains(classs) ) {
console.log("cool");
} else {
console.log("not cool");
}
<div id="some_id" class="some_class some_other_class"></div>
<img class="another_class"></img>
推荐阅读
- sql-server - SQL 性能问题:选择 N 行直到找到不同的 200 个客户
- laravel - 拉拉维尔 | 测试
- python - 带有前导/尾随斜杠且不带斜杠的路线
- php - 使用php根据用户输入仅匹配数据库中字段的某些部分从数据库中获取所有数据
- python - 使用 __init__.py 修改 sys 路径是个好主意吗?
- hana - 将 XML 数据从源复制到 SAP HANA 表
- linux - 在 bash 中将文本附加到具有模式匹配名称的文件
- c# - 您可以从 C# 控制台应用程序写入 CRM 365 跟踪日志吗?
- unity3d - 我无法从父对象中选择单个子对象
- java - 严重:使用 Java 类版本 53.0 运行,但 Jenkins 需要 52.0 错误,通过命令提示符显示为“java -jar jenkins.war”