我想保留第一个<a>
和<span>
,但请删除以下内容:
<div>
<a href="http://aerospace.com">Aerospace</a> and
<a href="http://aviation.com">Aviation</a>
<span class="blah">(15)</span>
</div>
我发现,似乎没有明显的匹配纯文本and
。我正在尝试将nextAll()与过滤器一起使用:
$("a:contains('Aerospace')").each(function() {
$(this).nextAll().filter(":not(span)").empty();
});
但and
文字留在那里。
是否可以匹配jQuery中的文本?有没有文本选择器这样的东西,所以我可以使用像filter (":isText()")
?
答案 0 :(得分:2)
$("a:contains('Aerospace')").parent().contents().each(function() {
if ( this.nodeType == 3 ) {
var text = this.textContent? this.textContent: this.innerText;
text = $.trim( text );
if ( text.length ) {
alert( text );
}
}
});
在我的脑海中,这样的东西应该可以工作,你向下移动到父母并对所有内容进行操作,而不仅仅是element
nodeType
1
nodeType
个节点但包括3
{{1}}的textNodes。
如果这不起作用,请告诉我。
答案 1 :(得分:0)
如何复制span
,然后移除div
中的所有内容,然后重新放入span
?
$("a:contains('Aerospace')").each(function()
{
var span = $(this).parent().children("span").clone();
$(this).parent().empty().append(span);
});