jquery:用它替换内部子元素';s文本,以便外部元素';s文本只返回文本?
考虑一个包含文本的元素<代码>标题文本内部文本或jquery:用它替换内部子元素';s文本,以便外部元素';s文本只返回文本?,jquery,html,dom,Jquery,Html,Dom,考虑一个包含文本的元素标题文本内部文本或标题文本内部文本 渲染时,它看起来像标题文本内部文本,但实际上,当我想要获取h1的文本内容时,它也会返回内部子元素 我如何确保所有像这样的案例都格式化为以下格式 标题文本内部文本 基本上去除任何装饰性的内部元素?我需要根据元素的文本值选择一个元素,不幸的是,这些内部子元素相互干扰。例如,当我尝试通过xpath(如*[text()='Title text internal text'])匹配元素时,它找不到它,因为存在内部子元素。对于人类读者来说,这似乎很自
标题文本内部文本
渲染时,它看起来像标题文本内部文本
,但实际上,当我想要获取h1
的文本内容时,它也会返回内部子元素
我如何确保所有像这样的案例都格式化为以下格式
标题文本内部文本
基本上去除任何装饰性的内部元素?我需要根据元素的文本值选择一个元素,不幸的是,这些内部子元素相互干扰。例如,当我尝试通过xpath(如
*[text()='Title text internal text']
)匹配元素时,它找不到它,因为存在内部子元素。对于人类读者来说,这似乎很自然,因为文本似乎被限制在自己的文本中,但底层的html结构则相反。这会将所有h1
元素的文本设置为只包含文本,而不包含额外的html:
$('h1').text(function(i, orig) { return orig; } );
您可以使用
innerText
属性。它返回所有文本
用法:
var elem = document.getElementById ("myDiv");
message += "\ninner text : " + elem.innerText;
alert (message);
看到这把小提琴了吗
我想您正在寻找这样的产品:
var temp='Title text internal text';
var$temp=$(temp).find('span,b,h1').contents().unwrap().end().end();
尽管巴尔马的解决方案看起来也非常可行
var temp='<h1>Title text <span>inner <b>text</b></span></h1>';
var $temp = $(temp).find('span, b ,h1').contents().unwrap().end().end();