我想遍历元素中文本的字符并将span
添加到字符中。这是使用jQuery.map()
很简单:将跨度添加到字符串中的字符(在HTML元素中)
$elem = $('h1');
var chars = jQuery.map($elem.text().split(''), function(c) {
return '<span>' + c + '</span>';
});
$elem.html(chars.join(''));
以上works great with a simple string,但现在我想改变的功能,使得它也将处理这样更“复杂”的内容:<h1>T<em>e</em><b>st</b></h1>
。其中应该翻译为:<h1><span>T</span><em><span>e</span></em><b><span>s</span><span>t</span></b></h1>
。
这意味着我不能简单地遍历元素中的所有字符了。有什么我可以用来循环元素的内容(字符)以及所有的孩子吗?还是有另一种实现我想要的方式?
使用jQuery的滤波器滤除只是textnodes和运行那些在你的地图。 – adeneo 2012-03-12 11:46:54