javascript - 如何在给定元素值的情况下为 DOM 元素获取唯一的 CSS 选择器?

标签 javascript node.js dom

假设我有以下文档:

<html>
  <body>
    <h1>Hello world</h1>
  </body>
</html>

给定字符串“Hello world”,我如何搜索文档并为正确的元素(在本例中为 h1)生成 CSS 选择器?

最佳答案

好吧,这太草率了——如果你使用 $(":contains"),你就会得到整个树到最里面的元素。使用它,您可以找到最里面的 Node 。

var myContainer = $(":contains('Hello world') ");

while(myContainer.children().length != 0) {
    myContainer =myContainer.children();
}
myContainer.addClass("foo");
.foo {
  border: 1px dotted blue;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
  <body>
    <h1>Hello world</h1>
  </body>
</html>

或者,使用单个选择器执行相同的操作:

$(":contains('Hello world'):not(:has(*))").addClass("foo");
.foo {
  border: 1px dotted blue;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="content-pane">
<div class="header-pane">
<h1>Hello world</h1>
</div>
<div class="inner-content">
<h2>
Hello world is me!
</h2>
</div>
</div>

关于javascript - 如何在给定元素值的情况下为 DOM 元素获取唯一的 CSS 选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41856903/

相关文章:

javascript - 从 HTML 元素获取 DataTable 对象

javascript - 在angular2中以编程方式设置html slider 背景

node.js - express.js 上的过滤器

Javascript XML 解析器不工作

javascript - js(jquery)如何在图像加载之前运行

javascript - 使用 MomentJS 确定日期是今天还是过去?

javascript - Userscript - 有没有办法将 jquery 代码注入(inject)到 angularjs dom 中?

node.js - Google Cloud 功能 - 存储 - 删除图像 - "ApiError: Error during request"

javascript - Node JS异步执行和事件发出/监听器模型

JavaScript:如何通过选择器获取父元素?