我有以下HTML块。我想使用jQuery在文本“第二个链接之前的文本”之后找到锚点。锚可能是也可能不是最后一个,如本例所示,但它将始终紧跟在文本之后。
<div>
Text before the first link
<a href="">First Link</a>
Text before the second link
<a href="">I want to grab this link</a> <!-- I want to grab this anchor -->
</div>
答案 0 :(得分:2)
您可以使用contents()
查找具有给定文本内容的textnode。在那里,您可以使用nextSibling
获取a
。试试这个:
var node = $('div').contents().filter(function() {
return this.nodeType == 3 && this.nodeValue.trim() == 'Text before the second link';
}).get(0);
var $a = $(node.nextSibling);
// do something with $a here...
答案 1 :(得分:2)
你可以这样做,
var elem = $();
$("div").contents().each(function(){
if(this.nodeType == 3 && this.nodeValue.trim() == "Text before the second link"){
elem = elem.add(this.nextElementSibling);
}
});
elem.css("color","red");
使用.contents()
接收div
内的内容。内容包括元素节点,注释节点和文本节点。因此,文本节点的节点类型为3
。根据节点类型和文本值检查单个内容,并将其添加到空的jquery对象。