使用 JavaScript 获取内部 HTML 文本时出现问题

Issue While Getting innerHTML Text Using JavaScript

本文关键字:问题 文本 HTML JavaScript 获取 内部 使用      更新时间:2023-09-26

在下面的代码中,我提取了html元素的内部HTML文本。

if(a.tagName){
if("option"==a.tagName.toLowerCase())
    return a.text.replace(/'u00A0/g," ");
if("select-one"==a.type||"select-multiple"==a.type)
    return this.getSelectBoxText(a,!1);
}
if(this._isIE()||this.isSafariLike()&&!this._isChrome())
    return a.innerText||a.textContent||"";
var b=a.innerHTML;
return!b||-1==b.indexOf("'x3cbr")&&-1==b.indexOf("'x3cBR")?a.textContent:document.createElement?  (b=document.createElement(a.tagName),b.innerHTML=a.innerHTML.replace(/<br['/]*>/ig," "),b.textContent):a.textContent
};

上面的代码为所有 HTML 元素返回正确的内部 HTML 文本。当任何 HTML 元素包含带有特殊字符代码的文本时会出现问题,
例如 <a id="oopID1" href="...">OOP &ndash; Java</a> [在页面中显示">OOP - Java"]。

然后它不会返回实际呈现的文本(表示"OOP - Java"(。

我如何获得页面中显示的实际值。

提前谢谢。

[注意:我不想使用 jQuery。

使用 textContent 检索元素的文本内容:

document.getElementById("oopID1").textContent

看小提琴 这里

有用的链接:

文本内容文档

内部HTML文档

innerText vs innerHTML

使用innerText而不是innerHTML,因为前者以文本形式获取值,后者将其作为标记获取。