jQuery Selector在某个HTML元素后检索内容
问题描述:
我想在下面的代码中检索p
里面的font:first
元素后面的所有html元素。jQuery Selector在某个HTML元素后检索内容
<p class="rrp">
<font color="#ff6600">
<strong>
Save 20% on in-house Frames and Sunglasses
<br>
Save 10% on Contact Lens and Branded Frames
<br>
Ask at the counter for more details
</strong>
</font>
<br>
GKB Opticals, Shop No. EB-GF-10, Block East, Ground Floor, Town Centre - Amanora Mall, Amanora Park Township, Village Sadesatranali (17-1/2 Nali), Hadapsar, Taluka Haveli,
<br>Pune - 411 028.
<br>
<font color="#339900">Validity:</font>
31st March 2013
</p>
那么,结果将是
<br>
GKB Opticals, Shop No. EB-GF-10, Block East, Ground Floor, Town Centre - Amanora Mall, Amanora Park Township, Village Sadesatranali (17-1/2 Nali), Hadapsar, Taluka Haveli,
<br>Pune - 411 028.
<br>
<font color="#339900">Validity:</font>
31st March 2013
我应该给你一些代码,我已经做了,但我不知道如何获取某些元素之后的元素。
有人能指导我吗? 谢谢!
答
您可以使用nextAll
方法来选择元素的所有后续同胞。
$('.rrp font:first').nextAll()
如果要排除第一个字体元素,可以使用filter
方法。
var $ff = $('.rrp font:first')
$('.rrp').contents().filter(function(){
return !$(this).is($ff)
})
答
由于几乎所有的CSS选择器是由jQuery的支持,你可能只使用后兄弟选择,~
,其次是所有的选择,*
。
$('.rrp font:first ~ *')
答
您可以使用$('.rrp font:first').nextAll()
但将返回所有<br>
和<font color="#339900">Validity:</font>
而已,至于其他内容将不会选择,因为它们的<p>
一部分,你应该将所有文本元素
修改后的HTML里面:
<p class="rrp">
<font color="#ff6600">
<strong>
Save 20% on in-house Frames and Sunglasses
<br>
Save 10% on Contact Lens and Branded Frames
<br>
Ask at the counter for more details
</strong>
</font>
<br>
<div>GKB Opticals, Shop No. EB-GF-10, Block East, Ground Floor, Town Centre - Amanora Mall, Amanora Park Township, Village Sadesatranali (17-1/2 Nali), Hadapsar, Taluka Haveli,
<br>Pune - 411 028.
<br>
</div>
<font color="#339900">Validity:</font>
<div>31st March 2013</div>
</p>
答
如果你想要做的是让你的.rrp
内容的副本,而不第一字体ELE换货和之前的一切,你可以这样做:
var $rrp = $('.rrp').clone();
$rrp.find(':lt('+($rrp.find('font:first').index()+1)+')').remove();
var $rrpContent = $rrp.html();
$rrp
在这种情况下还包含了文本节点。
但是你需要的代码真的取决于你的用例。那是为了清洁吗?
答
您可以使用:$('.rrp font:first').nextAll()
。但正如@Shsul所说,只有被标签包围的元素才会被选中,而不仅仅是文本。
您所展示的不仅仅是元素,还有文本节点。你想怎么做? –