<p>.innertext保留换行
时间: 2023-08-12 13:07:02 浏览: 56
在 HTML 中,文本内容通常被包含在各种标记(如 <p>、<div>、<span> 等)中。如果想要在保留换行的情况下获取标记中的文本内容,可以使用 innerHTML 属性。例如:
```html
<p id="myParagraph">这是第一行<br>这是第二行</p>
```
JavaScript 代码:
```javascript
var myParagraph = document.getElementById("myParagraph");
var textContent = myParagraph.innerHTML;
```
得到的 textContent 变量的值为:
```
这是第一行<br>这是第二行
```
注意,这个值中包含了 HTML 标记 `<br>`,它表示换行。如果想要将这个值中的 `<br>` 替换成实际的换行符,可以使用 JavaScript 的 replace() 方法:
```javascript
var textContentWithLineBreaks = textContent.replace(/<br>/g, "\n");
```
这样得到的 textContentWithLineBreaks 变量的值为:
```
这是第一行
这是第二行
```
其中的 `\n` 表示换行符。
相关问题
C#保留<p>.innertext换行
在 C# 中,如果需要获取 HTML 标记(如 <p>、<div>、<span> 等)中的文本内容并保留换行,可以使用 HtmlAgilityPack 库。该库提供了一个 HTML 解析器,可以方便地将 HTML 文档加载到内存中,并对其进行操作。
首先需要安装 HtmlAgilityPack 库,可以使用 NuGet 包管理器进行安装。安装完成后,在代码中引入命名空间:
```csharp
using HtmlAgilityPack;
```
假设有如下的 HTML 代码:
```html
<p id="myParagraph">这是第一行<br>这是第二行</p>
```
可以使用以下代码来获取其中的文本内容,并保留换行符:
```csharp
// 加载 HTML 文档
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlText);
// 获取 <p> 元素
HtmlNode myParagraph = doc.GetElementbyId("myParagraph");
// 获取 <p> 元素的文本内容,并保留换行符
string textContent = myParagraph.InnerText.Replace("\n", Environment.NewLine);
```
其中,`htmlText` 是包含 HTML 代码的字符串。`GetElementbyId` 方法可以获取指定 ID 的元素节点。`InnerText` 属性可以获取元素节点的文本内容,而 `Environment.NewLine` 表示换行符,可以保留文本中原有的换行符。
经过上述处理,`textContent` 变量的值为:
```
这是第一行
这是第二行
```
即为保留换行的文本内容。
这是一段模拟html标签的字符串'<p><b> </b>1<u>1<b>1 <i>2</i></b><i>2</i>2</u><i> </i></p>',用js写出3种方法,找到并清除p标签的innerText的前面和后面的空格,中间的空格不需要去除
问题1: 用js写出3种方法,找到并清除p标签的innerText的前面和后面的空格,中间的空格不需要去除。
答案:
方法一: 使用正则表达式替换
```javascript
let str = '<p><b> </b>1<u>1<b>1 <i>2</i></b><i>2</i>2</u><i> </i></p>';
let result = str.replace(/<p[^>]*>(.*?)<\/p>/, (match, p1) => {
return `<p>${p1.trim()}</p>`;
});
console.log(result);
```
方法二: 使用innerHTML和outerHTML进行替换
```javascript
let str = '<p><b> </b>1<u>1<b>1 <i>2</i></b><i>2</i>2</u><i> </i></p>';
let tempDiv = document.createElement('div');
tempDiv.innerHTML = str;
let pTag = tempDiv.querySelector('p');
pTag.innerText = pTag.innerText.trim();
let result = tempDiv.innerHTML;
console.log(result);
```
方法三: 使用DOM操作进行处理
```javascript
let str = '<p><b> </b>1<u>1<b>1 <i>2</i></b><i>2</i>2</u><i> </i></p>';
let tempDiv = document.createElement('div');
tempDiv.innerHTML = str;
let pTag = tempDiv.querySelector('p');
for (let i = 0; i < pTag.childNodes.length; i++) {
let childNode = pTag.childNodes[i];
if (childNode.nodeType === Node.TEXT_NODE) {
childNode.textContent = childNode.textContent.trim();
}
}
let result = tempDiv.innerHTML;
console.log(result);
```