我需要从 DOM 检索数据,但容器没有特定的 class
或id
,
有时它们并不全部可用。
所以我可以找到这个:
<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/