You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用XPath查找属性名以jQuery开头且值为139的div元素

解决XPath查找特定前缀属性且值精确匹配的问题

嘿,我明白你要找的是属性名以jQuery开头且属性值正好是139的<div>元素,原来的XPath表达式确实有逻辑问题,我来帮你修正它!

问题出在哪?

你写的//div[@*[starts-with(name(), 'jQuery')]='139']错误点在于:

  • @*[starts-with(name(), 'jQuery')]会返回所有符合前缀的属性节点,但直接用='139'去和这些节点做比较,不符合XPath的语法逻辑。我们需要的是找到存在某个属性,它同时满足「名称以jQuery开头」和「值等于139」两个条件。

正确的XPath表达式

这里有两种可靠的写法,都能精准定位到目标元素:

写法1:明确检查属性的双重条件

//div[./@*[starts-with(name(), 'jQuery') and .='139']]
  • 逻辑拆解:先定位所有<div>,然后在每个div的属性中,筛选出名称以jQuery开头且属性值等于139的属性节点;只要某个div存在这样的属性,就会被选中。

写法2:更简洁的链式谓语(推荐)

//div[@*[starts-with(local-name(), 'jQuery')][.='139']]
  • 这里用local-name()替代name()是更通用的写法:如果属性带有命名空间,name()会返回带命名空间前缀的属性名,而local-name()只返回属性的本地名称(比如jQuery1124022385363269720443),在你的场景里两种都能用,但local-name()适配性更强。

验证效果

用这个表达式匹配你提供的HTML,正好会选中这个目标元素:

<div class="selectize-input items not-full" jQuery1124022385363269720443="139">

而页面中其他带有jQuery前缀但值不是139的<div>会被排除在外,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Almagawar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 17:52:51