我想遍歷元素中文本的字符並將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