-1

我需要将所有项目符号包装在一个带有 span 标签的 div 中。• HTML 代码是•.

我发现下面的代码可以做到这一点,除了它还删除了 div 中的所有链接和其他 HTML 代码。

var $bc = $('#site-nav');
$bc.html($bc.text().split('•').join('<span>•&lt;/span>'));

如何在不丢失链接的情况下包裹所有子弹?这是上面代码的一个小提琴:

http://jsfiddle.net/76Wvu/6/

谢谢!

4

2 回答 2

1

为了避免替换 html 并可能弄乱事件和数据,我会wrap()改用:

http://jsfiddle.net/RDf5m/

$('#site-nav').contents().filter(function() { 
    return this.nodeType == 3 && $.trim($(this).text()) == '•';
}).wrap('<span/>');
于 2013-10-23T17:28:50.933 回答
1

你应该替换text()html()

var $bc = $('#site-nav');   
$bc.html($bc.html().split('•').join('<span>•&lt;/span>'));

否则你只读取元素的文本内容,不包含任何<a>标签。因此样式和链接被删除。

于 2013-10-23T17:23:56.737 回答