所以我有一段代码

// separate pargraph words by spans
$layer.find('p').each(function(){
    var spanned = $(this).html().split(" ").map(function(w){ return '<span class="word">' + w + '</span>'; }).join(" ");
    $(this).html(spanned);
});


尝试在<span class="word"></span>内包装单词(定义为用空格分隔的任何内容),但出现了错误,因为它的结

javascript - 我的西类牙语单词包装算法的缺陷在哪里?-LMLPHP

所有嵌套的东西。那么我做的事情的缺点在哪里?

最佳答案

可以清楚地看到,p标记不仅包含文本,而且还包含一些HTML标记,这会造成此问题,因此,代替执行.html()而不是.text()会返回纯文本。

$layer.find('p').each(function(){
    var spanned = $(this).text().split(" ").map(function(w){ return '<span class="word">' + w + '</span>'; }).join(" ");
    $(this).html(spanned);
});


请记住,这将删除任何标记,例如ali ...(这取决于您的用例),但是通过看到您的问题,我认为您没有它们。

也许您也想使用$.trim删除不需要的空格。

关于javascript - 我的西类牙语单词包装算法的缺陷在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36706023/

10-09 22:40