我使用 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/