JavaScript如何获取DIV的纯文本值(去除HTML标签)
解决DIV元素获取纯文本值的问题
嘿,这个问题我之前也踩过坑!你之所以alert弹窗里会出现HTML标签,大概率是因为你获取DIV内容的时候用了innerHTML属性——它会返回包含所有HTML标签的完整内容,而不是你设置的纯字符串。下面给你两种靠谱的解决办法:
方法一:用原生DOM的纯文本属性(推荐)
DOM元素提供了专门获取纯文本的属性,直接用它们就能拿到你要的"AMD"、"APPLE"这类纯字符串:
错误写法(会带HTML标签)
function outputStock() { const stockDiv = document.getElementById('你的DIV元素ID'); alert(stockDiv.innerHTML); // 这里会弹出带HTML标签的内容 }
正确写法(获取纯文本)
function outputStock() { const stockDiv = document.getElementById('你的DIV元素ID'); // 方法1:textContent(W3C标准,获取所有文本,包括隐藏元素的文本) alert(stockDiv.textContent); // 方法2:innerText(考虑页面样式,只获取可见的文本) // alert(stockDiv.innerText); }
两者的小区别:textContent是W3C定义的标准属性,会返回元素里所有的文本内容(包括被CSS隐藏的部分);innerText则会考虑当前页面的样式,只返回用户能看到的文本。一般场景下用textContent就足够了。
方法二:正则表达式去除HTML标签(不推荐)
如果因为特殊场景没法用原生属性,也可以用正则把字符串里的HTML标签替换掉,但这种方法容易有边缘情况(比如标签里的特殊字符),所以只作为备选:
function stripHtmlTags(str) { return str.replace(/<[^>]*>/g, ''); } function outputStock() { const stockDiv = document.getElementById('你的DIV元素ID'); const pureText = stripHtmlTags(stockDiv.innerHTML); alert(pureText); }
记住,优先用方法一,原生属性更可靠也更高效!
内容的提问来源于stack exchange,提问作者husharoonie
相关产品推荐
相关产品推荐

