最有效的方式来转换字符在多跨度,同时保持html格式
Most efficient way to trasform chars in multi span while maintaining html format
我正在开发一个javascript库,动画与随机图表条目的div。我需要将每个字符转换为div,并保持html格式。
最有效的方法是什么?
例子:
<div class="base_container">Hi Elia,<br>what's your name?</div>
为:
<div class="base_container">
<span id="char_1">H</span>
<span id="char_2">i</span>
<span id="char_3"> </span>
<span id="char_4">E</span>
<span id="char_5">l</span>
<span id="char_6">i</span>
<span id="char_7">a</span>
<span id="char_8">,</span>
<br>
<span id="char_9">w</span>
<span id="char_10">h</span>
.
.
.
</div>
提前感谢!最困难的部分是维护html格式!
说明HTML格式中的任何标签,而不仅仅是<br>
:
var i = 0,
div = $('<div class="base_container">Hi Elia,<br>whats your <b>name</b>?</div>');
function processContent(element){
element.contents().each(function(){
if(this.nodeType == 3){
/* it's safe to process text nodes only */
var content = this.textContent;
content = content.replace(/./g, function(a){ return '<span id="char_' + ++i + '">' + a + '</span>'; })
$(this).replaceWith($(content));
}else{
/* recursively process child nodes */
return processContent($(this));
}
});
}
processContent(div);
console.log(div.html());
我不打算告诉你如何做到这一点,因为这不是你的问题。最好的方法是:
var elem = document.getElementsByClassName('base_container')[0];
var content = elem.innerHTML;
// Do some crazy stuff with regex and string parsing
elem.innerHTML = content;
希望对你有帮助。
我会这样做:
var baseContainer = document.querySelector(".base_container");
var textParts = baseContainer.innerHTML.match(/<[^>]+>|&[a-z0-9]+;|./gi);
baseContainer.innerHTML = textParts.map(function (textPart, index) {
return textPart.length > 1 ? textPart : "<div id='char_" + index + "'>" + textPart + "</div>";
}).join("");
相关文章:
- 如何使用javascript或html下载PDF格式的填写表单
- PHP:显示sqlite数据库中的html格式数据,使用tinymce保存
- JavaScript生成html格式的密码
- 在HTML页面上将URL解析为可读的json格式
- 如何在angularjs中实现html格式的字符串
- 如何在不创建格式错误的HTML标记的情况下分解字符串
- 如何重写Javascript If语句以选择Classes而不是ID's的HTML格式
- 如何使用JQUERY解析大型XML文件并将其可视化为HTML格式
- JavaScript-HTML表单到JSON(空值)和格式
- HTML表的JSON格式
- HTML文本框,它接受电话号码,并以美国电话号码格式显示
- 如何将HTML表单(JSON格式)中的数据分配给变量
- 正则表达式,用于从html格式的字符串中提取文本
- 表单中的CSS、HTML格式
- 如何使用javascript在html中查找日期时间格式
- 更改html标记或其子标记(而不是其属性)文本中的日期格式
- 如何将PHP变量从Blade格式HTML传递给JavaScript函数
- jQuery AJAX 格式 - HTML PHP 表单格式在加载后自动更改
- Rails 格式.html在 ajax 调用上呈现部分返回奇怪的结果
- 格式html表与交替行着色显示json数据