jquery - Jquery 中基于标签之间文本的选择器

标签 jquery css-selectors

我需要从 DOM 检索数据,但容器没有特定的 classid , 有时它们并不全部可用。

所以我可以找到这个:

<h2>name</h2>
<p>john</p>
<h2>address</h2>
<p>street 1</p>
<h3>email</h3>
<p>jong@site.com</p>

或者这个:

<h2>name</h2>
<p>john</p>
<h3>email</h3>
<p>jong@site.com</p>

如您所见,要获取我无法通过class选择的电子邮件或id ,也不是第 n(th) 个元素,因为它可能是第二个或第三个 <p>

我看到的唯一解决方案是获取第一个 <p>就在<h3>email</h3>之后,但我不知道如何按 text() 进行过滤数据。

谢谢。

最佳答案

您始终可以创建自己的选择器来匹配确切的文本内容。

这个可以做到这一点,但首先修剪所有空白。

$.extend($.expr[':'], {
    textIs: function(elem, i, attr) {
        return ( $.trim( $.text([elem]) ) === attr[3] );
    }
});

然后你会像这样使用它:

示例: http://jsfiddle.net/aXvm3/

$('h3:textIs(email)').next()

关于jquery - Jquery 中基于标签之间文本的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3849782/

相关文章:

Jquery 每个不输出页面上的所有数据

javascript - Jquery-从 HTML 表创建 JavaScript 对象

javascript - 突出显示事件 DIV 中的元素

javascript - 未捕获的类型错误 : cannot call method 'cookie' of undefined

html - 了解表属性的特殊性

javascript - ParlseyJS - 删除禁用字段的验证

python - 如何使用 Selenium 和 Python 选择具有不可选择的 ="on"属性的 kendo 下拉元素

javascript - 使用正则表达式解析 css3 选择器 (javascript)

css - 在 CSS 中声明一组样式时 "."和 "#"有什么区别?

html - 选择一个部分中的第一篇文章