javascript - 拆分html元素并获取文本
问题描述
我在下面有两个示例代码sample 2
似乎对我来说可以拆分元素。但问题是我的元素有一种样式来为其中的文本着色,正如您在sample 1
.
样品 1 的期望输出
A2 获奖通知
或者
A2 租赁合同
样品 1
var str = '<div class="col-md-10"> <a style="color:green">A2 Award Notice </a> <a style="color:black">or</a> <a style="color:orange">A2 Lease Contract </a> </div>';
console.log(str.match(/<a>.*?<\/a>/g));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
样品 2
var str = '<div><a>A</a><a>B</a><p>Foobar</p><a>C</a></div>';
console.log(str.match(/<a>.*?<\/a>/g));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
TIA。
解决方案
使用另一个技巧从 html 标记和 for 循环中提取文本,您将得到它:
function extractContent(s) {
var span = document.createElement('span');
span.innerHTML = s;
return span.textContent || span.innerText;
};
var str = '<div class="col-md-10"> <a style="color:green">A2 Award Notice </a> <a style="color:black">or</a> <a style="color:orange">A2 Lease Contract </a> </div>';
var array = str.match(/<a.*?<\/a>/g);
var i;
for (i = 0; i < array.length; i++) {
array[i] = extractContent(array[i]);
};
console.log(array);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
推荐阅读
- java - Junit测试调用rest api的方法
- java - 有没有办法一个可完成的功能在执行完成后通知其他未知(谁正在等待其他功能的结果)?
- ios - 斯威夫特:如果我删除了一个值,如果我再次插入它,为什么还要再次删除 Firebase 这个值?
- powerpoint - PowerPoint 中的 Web 插件对话框:居中和插入 Web 浏览器仿真
- python - 附加到对象列表的项目附加到每个对象的列表
- powershell - 'Rename-Item' 使用新名称制作副本
- angularjs - 在Angular JS中获取ng-options的数组索引
- node.js - 如何配置终端以读取 UTF-8 字符?
- javascript - 如何获得所需的输出?2 输入名字和出生日期?
- azure - Azure Site Recovery 受保护的 VM 限制为 10