html id span,如何在html标签之间插入`<span id =“myspanid”></span>`到所有内容?

这篇博客介绍了如何在JavaScript中安全地使用innerHTML,并提供了一个函数,用于查找文本节点并用特定类名的span元素包裹它们。这种方法可以避免与其他innerHTML操作混淆,并且详细说明了处理HTML字符串和元素的方法。

不要用其他答案中建议的方式使用innerHTML,它会与其他任何其他问题混淆有元素。你需要寻找的文本节点和包装他们,就像这样:

// Pass either an id or a DOM element

var wrapContent = (function() {

// This could be passed as a parameter

var oSpan = document.createElement('span');

oSpan.className = 'mySpanClass';

return function(id) {

var el = (typeof id == 'string')? document.getElementById(id) : id;

var node, nodes = el && el.childNodes;

var span;

var fn = arguments.callee;

for (var i=0, iLen=nodes.length; i

node = nodes[i];

if (node.nodeType == 3) {

span = oSpan.cloneNode(false);

node.parentNode.insertBefore(span, node);

span.appendChild(node);

} else {

fn(node);

}

}

}

}());

如果你想在HTML的字符串运行它,然后创建一个div,插入字符串作为它的innerHTML,运行上面的函数传递它的股利,然后抓住innerHTML的背:

function wrapHTMLstring(s) {

var el = document.createElement('div');

el.innerHTML = s;

wrapContent(el);

return el.innerHTML;

}

alert(wrapHTMLstring('

content1

content2

'));"

//

content1

content2

注意childNodes集合将在不同的浏览器不同,对于相同的HTML,如果您有任何多余的空格,所以你可能需要做一些处理存在(例如,如果一个textNode没有任何内容,不包装它)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值