jquery - 使用拆分只拆分文本?

时间:2015-11-05 01:26:39

标签: javascript jquery split

我的代码拆分文本并在一定数量的单词后放置一个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>

1 个答案:

答案 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);

});