如何仅在javascript中选择未格式化的文本?
如果我有这样一个页面:如何仅在javascript中选择未格式化的文本?,javascript,html,Javascript,Html,如果我有这样一个页面: <p><strong>Description</strong><br>Freehold Terrace House Three Floor 4 Room(s) Garden Out Building Vacant</p> 请参阅代码段模拟器: console.log(document.getElementsByTagName('p')[0].textContent) 说明自由保有露台房屋三层4间花园外建筑空置您
<p><strong>Description</strong><br>Freehold Terrace House Three Floor 4 Room(s) Garden Out Building Vacant</p>
请参阅代码段模拟器:
console.log(document.getElementsByTagName('p')[0].textContent)代码>
说明
自由保有露台房屋三层4间花园外建筑空置您可以这样使用:
<p><strong>Description</strong><br>Freehold Terrace House Three Floor 4 Room(s) Garden Out Building Vacant</p>
const p=document.getElementsByTagName('p')[0];
const result=Array.from(p.childNodes).find(x=>x.nodeType===Node.TEXT\u Node).wholeText;
控制台日志(结果)代码>
说明
自由保有露台房屋三层4间花园外建筑空置
使用innerHTML
可以让您更好地管理字符串
console.log(document.getElementsByTagName('p')[0].innerHTML.split(“
”[1])代码>
说明
自由保有露台房屋三层4间花园外建筑空置
@guerric-p的回答是正确的,如果您使用的是其他可能不遵循相同结构的元素,则将提供更大的灵活性。但是,如果所有用例都遵循相同的结构,则可以利用lastChild
来简化
注意:我还将getElementByTagName
更改为querySelector
const p=document.querySelector('p');
const result=p.lastChild.wholeText;
console.log(结果);//自由保有露台住宅三层4间花园外建筑空置
说明
自由保有平台房屋三层4间花园外建筑空置其他答案依赖于标记,但如果您只想在文本中查找字符串,而不需要任何格式,则可以使用string.match()使用Regex函数在未格式化文本中进行选择,例如在您的案例中,描述之后是什么
var string=document.getElementsByTagName('p')[0].textContent;
console.log(字符串);
console.log(string.match(/(?首先,让我修复您的代码:
标记未正确关闭。它应该在
之前关闭
第二,如果我理解正确,“未格式化”文本只是不加粗的文本。
如果是这样,您可以使用函数getElementByTagName
将其写入两个不同的标记中
这是HTML代码:
<strong>Description</strong>
<br />
<p>Freehold Terrace House Three Floor 4 Room(s) Garden Out Building Vacant</p>
说明
自由保有露台住宅三层4间花园外建筑空置
console.log(document.getElementByTagName(“p”)[0].innerHTML.split(“
”[1]);
HTML不需要关闭
,而且从网页中抓取的HTML始终是原始的,按原样提供。您的解决方案不够通用,无法在没有换行符的情况下工作。
console.log(document.getElementByTagName("p")[0].innerHTML.split("<br>")[1]);