如何使用jQuery获取包含<br>标签的div文本内容?
解决方案:提取带
<br>标签的文本内容,排除其他子元素 我完全懂你的困扰——text()直接把所有标签都丢了,html()又连里面的.otherDiv也一起返回,确实不是你想要的结果。这里有两种靠谱的方法可以实现你的需求:
方法一:克隆元素后移除不需要的子元素
这种方法适合你明确知道要排除哪些子元素的场景,操作起来很直观:
// 先克隆目标元素,避免修改页面上的原DOM const clonedMyDiv = $('.mydiv').clone(); // 移除所有不是<br>的子元素(这里精准移除.otherDiv,也可以用更通用的选择器) clonedMyDiv.children().not('br').remove(); // 现在拿到的就是只保留文本和<br>的内容了 const desiredContent = clonedMyDiv.html();
方法二:遍历节点,只保留文本和<br>标签
如果你的.mydiv里可能有各种不确定的子元素,只想保留文本节点和<br>,可以用这种更通用的方式:
// 获取原生DOM元素(jQuery对象转原生) const myDivElement = $('.mydiv')[0]; let resultContent = ''; // 遍历所有子节点 myDivElement.childNodes.forEach(node => { // 文本节点:直接拼接内容(可以根据需求决定是否trim去空格) if (node.nodeType === Node.TEXT_NODE) { resultContent += node.textContent; } // <br>标签:直接拼接标签字符串 else if (node.tagName === 'BR') { resultContent += '<br>'; } });
两种方法都能实现你要的效果,你可以根据自己的实际场景选择~
内容的提问来源于stack exchange,提问作者Pat
相关产品推荐
相关产品推荐

