如何获取元素周围的文字?
如果我有
如何在不检索图例标签内的文本的情况下检索“正文”?
例如,如果我想查看字段集内的文本是否包含单词“body”并更改该单词,而忽略了图例中可能包含的内容? innerHTML检索所有子节点中的所有文本。
使用jQuery不会有问题。
$("#fldset").contents().eq(2).text();
没有图书馆 –
var fldset = document.getElementById("fldset"), txt = fldset.lastChild.textContent || fldset.lastChild.innerText; alert(txt);
这将使fldset
所有文本节点fldset
任何其他元素及其内容:
var fldsetContent = $('#fldset').contents(); var text = ''; $(fldsetContent).each( function(index, item) { if( item.nodeType == 3 ) text += $.trim($(item).text()); }); alert( text );
实例
$('#fldset').clone().find('legend').remove().end().text()
但你也应该搜索SO
- 使用.text()仅检索未嵌套在子标记中的文本
- 使用jQuery剪辑内容
我想不出除了以外的其他方式
$("#result").html($("#wrapper").text().replace($("legend").text(),""));
但应该有一个更优雅的方式 。 您还可以创建一个新元素作为此元素的副本,删除所有子元素并获取文本。 嗯…… 那将是 :
var newElement = $("#fldset").clone(); newElement.children().remove(); $("#result").html(newElement.text());
所以无论子节点有多少和哪种类型,这都行不通。 这里: http : //www.jsfiddle.net/wFV4c/
要将字段内的所有纯文本节点设置为红色:
jQuery.each($('#fldset').contents(),function(index,value){ if(value.textContent == value.nodeValue){ $(this).wrap('') } });