我明白了!這可能不是最佳的解決方案,但它的工作原理!還要注意,由於額外的標籤,空白可能會混亂。這也包裝標籤,但也很容易解決。
function wrap(target) {
var newtarget = $("<div></div>");
nodes = target.contents().clone(); // the clone is critical!
nodes.each(function() {
if (this.nodeType == 3) { // text
var newhtml = "";
var text = this.wholeText; // maybe "textContent" is better?
for (var i=0; i < text.length; i++) {
if (text[i] == ' ') newhtml += " ";
else newhtml += "<span>" + text[i] + "</span>";
}
newtarget.append($(newhtml));
}
else { // recursion FTW!
$(this).html(wrap($(this)));
newtarget.append($(this));
}
});
return newtarget.html();
}
用法:
$("#div").html(wrap($("#div")));
符合兒童的標籤也應該得到周圍標籤的字母? – 2010-06-04 20:15:38
你爲什麼想這樣做? – aviraldg 2010-06-04 20:16:08
這是不知道嵌套標記,但可能會給一些groudnwork:http://stackoverflow.com/questions/1966476/javascript-process-each-letter-of-text – 2010-06-04 20:16:35