Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery:用它替换内部子元素';s文本,以便外部元素';s文本只返回文本?_Jquery_Html_Dom - Fatal编程技术网

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();