Bun*_*gle 2 css jquery css-selectors jquery-selectors sizzle
我正在尝试找到一个jQuery选择器,它只匹配以下两个示例中直接包含文本"PDT"的元素(为简洁而截断):
<div>
<p>
<strong>(07-27) 21:28 PDT SAN FRANCISCO</strong> -- San Francisco
supervisors ended more than a decade...
</p>
<p>The 10-1 vote, with only Supervisor Chris Daly dissenting</p>
</div>
Run Code Online (Sandbox Code Playgroud)
和
<div>
<p>(07-28) 08:59 PDT WASHINGTON --</p>
<p>Orders to U.S. factories for big-ticket manufactured goods fell...</p>
</div>
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,这将是第一种情况,<strong>在第二种情况下,第一种情况<p>.我正在寻找能够匹配两者的单个选择器,或者找不到任何误报的多个选择器.
通过我的分析,我知道以下关于匹配的元素:
<p>是<strong>元素,也可以是元素鉴于所有这些属性,我认为应该有一个jQuery选择器,可以高精度地找到这些元素,几乎没有误报.但是,我在将一个放在一起时遇到了一些麻烦,因为我还没有使用这个复杂的选择器.
我所知道的工具(每个都链接到文档):
我不确定最后一个是否有用 - 我只是更仔细地阅读文档并注意到文本节点被:empty选择器考虑,因此我试图定位的HTML元素实际上并不是空的.但是,我可以依赖它们只包含一个文本节点而不包含任何其他内容的事实.
我的第一枪是:
*:contains(PDT):first-child:empty
Run Code Online (Sandbox Code Playgroud)
但那没用.我尝试了其他几种变体,但我有点难过.有人可以提供一些指导吗?
一个警告:我实际上并没有在我的脚本中使用jQuery,而是使用它的Sizzle选择器引擎.因此,我需要尝试在一个选择器中执行此操作,并且我不能使用.find()和.filter()等jQuery方法.
在此先感谢您的帮助!
使用您的所有条件,您可以:
尝试一下: http ://jsfiddle.net/CKuYD/
var $result = $(':first-child:not(:has(*)):contains(" PDT ")');
Run Code Online (Sandbox Code Playgroud)
注意"PDT"周围的空格.
如果它们包含文本,是第一个孩子,并且没有任何其他子标签,则会返回.
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |