【发布时间】:2019-02-09 15:01:47
【问题描述】:
我从对象obj[item].coveredText 中获取了一些搜索字符串字符串,并想用一个跨度替换此搜索字符串的每个字符。
实际上,我只能用一个跨度替换整个搜索字符串。感谢您的提示。
var rangeRoot = $("#plainText");
for (var item in obj) {
var input = rangeRoot.html();
var str = obj[item].coveredText;
var type = obj[item].type;
var level = obj[item].level;
var id = obj[item].id;
var toReplace = str;
var newSpan = '<span data-id="' + id + '" class="annotation level' + level + ' ' + type + '">' + str + '</span>';
var regEx = new RegExp(toReplace, "g");
var output = input.replace(regEx, newSpan);
$(rangeRoot).empty();
$(rangeRoot).append(output);
};
输入示例
这是一个文本示例
对象
{
"coveredText": "example",
"type": "exampleType",
"id": 4704,
"level": 2
}
输出
this is an <span data-id="4704" class="annotation level2 exampleType">e</span><span data-id="4704" class="annotation level2 exampleType">x</span><span data-id="4704" class="annotation level2 exampleType">a</span><span data-id="4704" class="annotation level2 exampleType">m</span>
...
【问题讨论】:
-
我已经添加了示例和预期输出
标签: javascript jquery