我想检索以下代码中font:first
内的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>
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
我应该给你一些我已经完成的代码,但我不知道如何在某个元素之后获取元素。
有人可以指导我吗? 谢谢!
答案 0 :(得分:2)
您可以使用nextAll
方法选择元素的所有后续兄弟节点。
$('.rrp font:first').nextAll()
如果要排除第一个字体元素,可以使用filter
方法。
var $ff = $('.rrp font:first')
$('.rrp').contents().filter(function(){
return !$(this).is($ff)
})
答案 1 :(得分:0)
由于jQuery几乎支持所有css选择器,因此您可以使用后兄弟选择器~
,然后使用all选择器*
。
$('.rrp font:first ~ *')
答案 2 :(得分:0)
您可以使用$('.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>
答案 3 :(得分:0)
如果您要做的是获取.rrp
内容的副本而没有第一个字体元素以及之前的所有内容,您可以这样做:
var $rrp = $('.rrp').clone();
$rrp.find(':lt('+($rrp.find('font:first').index()+1)+')').remove();
var $rrpContent = $rrp.html();
在这种情况下, $rrp
也包含文本节点。
但您需要的代码实际上取决于您的用例。这是清洁吗?
答案 4 :(得分:0)
您可以使用:$('.rrp font:first').nextAll()
。但正如@Shsul所说,只有用标签包围的元素才会被选中,而不仅仅是文本。