我有一个问题。我有一个HTML页面的字符串。我需要捕捉元素“接近”一个特定的字符串,像这样的:jQuery - 获取字符串附近的元素
<p>This is some text</p>
Ratings:
<strong><a href="http://www.foo.co">Kids +13</a></strong>
我需要“评级”,然后捕获最接近的下一个元素。我可以使用jQuery吗?我曾试过,但我无法理解哪些文本选择器“评分:”我可以使用。
谢谢。
我有一个问题。我有一个HTML页面的字符串。我需要捕捉元素“接近”一个特定的字符串,像这样的:jQuery - 获取字符串附近的元素
<p>This is some text</p>
Ratings:
<strong><a href="http://www.foo.co">Kids +13</a></strong>
我需要“评级”,然后捕获最接近的下一个元素。我可以使用jQuery吗?我曾试过,但我无法理解哪些文本选择器“评分:”我可以使用。
谢谢。
做到这一点,最好的办法是给你的一类这样的:
<a href="#" class="ratings">Kids +13</a>
在你的jQuery它是那么简单:
$('.ratings').html()
这将返回:
如果你想保存它,只需添加
var rating = $('.ratings').html()
如果您有多个评分,它会稍微复杂一点,但不会太多。
我无法修改源页面,所以页面是一样的。 – KLODEnet
这为我工作:
$("body:contains(Ratings\:)").find("strong").html();
这不是漂亮,而且在任何情况下将无法正常工作,但它确实工作的例子。如果你能举出其他例子,我们可能会提供更多帮助。
谢谢。我已经尝试了您的解决方案,但它会返回大量强标签。因为我认为它会检查BODY是否包含“Ratings:”,如果这是真的,它会搜索所有“strong”标签。这不好! – KLODEnet
包裹Ratings:
文本在<span>
标签和应用class
属性,像这样:
<p>This is some text</p>
<span class="ratings">Ratings:</span>
<strong><a href="http://www.foo.co">Kids +13</a></strong>
然后你可以选择Ratings:
文字,像这样:
$(".ratings:contains(Ratings\:)")
最后,你可以使用jQuery .next()
函数获取所选元素的紧随其后的兄弟(您的案例中的<a>
标记),如下所示:
$(".ratings:contains(Ratings\:)").next()
查看示例jsFiddle。
你能不能在课堂上用'span'包装单词'ratings'?这将使选择器变得非常容易。如果没有,你将不得不使用'contents()',然后在'textNodes'中进行挖掘,这不会很漂亮。 –
正如Rory McCrossan所说,使用包装元素会更容易,但是您可以从这样的语法开始:$('*:contains(“Ratings:”)');' – Daniele