我的代码拆分文本并在一定数量的单词后放置一个html代码。它的工作原理是,split函数不仅可以拆分文本,还可以拆分HTML。如何将其配置为仅拆分文本?假设我有一篇文章,我需要在文章中间出现一个横幅,如果我不注意,我会分割一些div或类似的东西。
以下是代码:
<script type="text/javascript">
jQuery(function($) {
var wordList = $(".newsitem_text").html().split(' ');
var newHtml = '';
$.each(wordList, function(index, word){
newHtml += ' ' + word;
if (index == 10) {
newHtml += 'Some HTML goes here'
}
})
;
$(".newsitem_text").html(newHtml);
});
</script>
答案 0 :(得分:1)
您应该使用jQuery的.contents()
方法,并且在逐字复制其他所有内容时仅拆分文本标记。像这样:
jQuery(function($) {
var newHtml = '';
var count = 0;
function check() {
if (count >= 20) {
newHtml += 'Some HTML goes here'
count = 0;
}
}
$(".newsitem_text").contents().each(function () {
if (this.nodeType != 3) {
newHtml += this.outerHTML;
count += $(this).text().trim().split(/\s+/).length;
}
else {
var wordList = $(this).text().trim().split(/\s+/);
$.each(wordList, function(index, word){
count++;
check();
newHtml += ' ' + word;
})
}
});
check();
$(".newsitem_text").html(newHtml);
});