javascript - CSS 选择器生成

标签 javascript jquery html css

我在制作自动生成网页中元素的 CSS 路径的逻辑时遇到问题。

用例:当用户单击网页上的任何元素时,会自动生成 CSS 选择器。

当下一页相同时,这对于抓取文本效果很好,但当元素顺序更改时会出现问题。例如:

<html>
    ....
    <body>
          <div>ABC</div>
          <div>DEF
               <span>GHI</span>
               <ul>
                   <li>123abc</li>
                   <li>123abc</li>
                   <li>xyz</li>
               </ul>
          </div>
   </body>
</html> 

假设我为包含“xyz”的第三个 li 元素生成一个 CSS 选择器

body > div:nthchild(2) > ul > li:nthchild(3)

现在,如果页面发生变化并且新的 HTML 是:

<html>
    ....
    <body>
          <div>ABC</div>
          <div>DEF
               <span>GHI</span>
               <ul>
                   <li>123abc</li>
                   <li>xyz</li>
               </ul>
          </div>
   </body>
</html> 

我使用上面生成的相同选择器 (body > div:nthchild(2) > ul > li:nthchild(3)),这会返回 [null]。

请记住,li 元素没有任何类、id、属性。它们只是包含 li 标签的纯文本。

目前,我使用以下属性来生成 CSS 选择器:标记名、id、类名和第 n 个子索引。

请帮助我!

最佳答案

如果您想获取最后一个,可以使用:

body > div:nthchild(2) > ul > li:nth-last-child(1)

关于javascript - CSS 选择器生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31465520/

相关文章:

javascript - 鼠标悬停在 jquery 上更改图片时的延迟

JavaScript - 使用 RegExp 匹配字母数字模式

javascript - jQuery - 动画高度设置导致颤抖

javascript - onclick =""与事件处理程序

javascript - 在 CKEditor 中仅添加一次 HTML 元素

javascript - jQuery 选择器问题 : clicking one element will modify the immediate next element

Jquery:如果和其他

javascript - 无论如何,在 CSS 中的 div 内有圆形边框的子级是否有共享线性渐变?

javascript - 如何使用 nodejs 遍历 JSON 中的嵌套对象?

Javascript:网页中与脚本相关的 HTML 标签的不正确中和(基本 XSS)