我需要将所有项目符号包含在带有span标记的div中。 •HTML代码为•
。
我发现以下代码会执行此操作,但它也会删除div中的所有链接和其他HTML代码。
var $bc = $('#site-nav');
$bc.html($bc.text().split('•').join('<span>•</span>'));
如何在不丢失链接的情况下包装所有项目符号?以下是上述代码的小提琴:
谢谢!
答案 0 :(得分:1)
您应该text()
替换html()
var $bc = $('#site-nav');
$bc.html($bc.html().split('•').join('<span>•</span>'));
否则你只读取元素的文本内容,该内容不包含任何<a>
标记。因此,样式和链接将被删除。
答案 1 :(得分:1)
为了避免替换html并可能搞乱事件和数据,我会改为使用wrap()
:
$('#site-nav').contents().filter(function() {
return this.nodeType == 3 && $.trim($(this).text()) == '•';
}).wrap('<span/>');