javascript - 如何使用 jQuery 选择器获取此元素?

标签 javascript jquery html dom

我使用 jQuery 从一些网站获取预保存元素的值,使用如下路径:

HTML BODY #bodyContainer #mainContentContainer #mainContent #productContentRight #swatchContent #colorSwatchContent SPAN

当网站页面包含表格并且在另一个类似路径中有相同元素时我遇到的问题,例如:

/html/body/div/center/div/div[3]/div/table/tbody/tr[5]/td/div/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[3]/td

在最后一个路径中,您可以看到有 5 个 tr,这意味着可以在另一个路径中找到相同的元素。

我使用路径作为 jQuery 的选择器,jQuery 将返回元素数组,我不知道哪个是正确的元素。

所以我的问题是:

如何保存路径以备后用?以及如何解析这个新路径以准备好作为 jQuery 选择器。

如果问题不清楚,请问我,我会尽力解释更多。

最佳答案

我不知道为什么有这么多答案说你在使用 XPath,因为 XPath 很久以前就被弃用了,如果没有 XPath 兼容性插件,jQuery 不再支持它。

请参阅 1.2 的发行说明:http://www.learningjquery.com/2007/09/upgrading-to-jquery-12

XPath 兼容性插件:http://docs.jquery.com/Release:jQuery_1.2#XPath_Compatibility_Plugin

只需使用 $("#colorSwatchContent span") 作为您的选择器。这是一个 css 样式的选择器,意思是找到一个具有 id colorSwatchContent 的元素的所有后代 span 元素。由于 html 中的 id 是唯一的标识符,因此这是尽可能具体的。

$("#colorSwatchContent > span") 将只选择 DIRECT 后代(直系子代)

$("#colorSwatchContent > span:first") 将选择第一个 span 直接后代

关于javascript - 如何使用 jQuery 选择器获取此元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/830217/

相关文章:

javascript - 在这种情况下如何减少工作?

javascript - 如何制作 SVG 文本元素 "click-through-able"?

javascript - AMP 如何在页面中包含 javascript 并应用此脚本中的函数

javascript - 如何更正在 firebase 实时规则上添加索引

javascript - Kendo UI 网格自定义过滤器 UI

javascript - $.getScript,可以给包含的脚本一个id吗?

javascript - 页面加载时向用户发送消息?

jquery - 更改子元素悬停时的父元素背景位置

javascript - 在oracle apex中子窗口关闭时父页面刷新

javascript - 使用相对位置和 top 属性来定位 Flexbox 的子元素(right 属性有效,但 top 无效)