将格式化字符串转换为三个不同的元素

时间:2017-06-10 01:52:19

标签: javascript jquery

我的代码可以切割格式为的斜体:

  

TITLE1 - TITLE2 [XXX]

通过三部分解析""成三个数组并插入三个div元素:

<div class='title'>
<div class='title2'>
<div class='cut'>

该代码是:

var Enumber1 = new Array();

$("#title").each(function(i){
    var text = $(this).text();

    if(text.indexOf('[') != -1 || text.indexOf(']') != -1){
        var Ntext1  = text.split('[')[0];
        Enumber1[i] = text.split('[')[1].split(']')[0];
        $(this).text(Ntext1);
    }
});

$("#cut").each(function(i){         
    $(this).fadeIn("slow");

    if(Enumber1[i] != undefined){
        $(this).text(Enumber1[i]);
    } else {
        $(this).css('N/A');
    }
});

到目前为止,我得到了:

  • TITLE1 - TITLE2&gt;&gt;&gt;留在div class =&#34; title&#34;
  • XXX&gt;&gt;&gt;&gt;削减div class&#34; cut&#34;

我想要的是将此文本纳入:

  • TITLE1&gt;&gt;&gt;留在<div class"title">
  • TITLE2&gt;&gt;&gt;移至<div class"title2">
  • XXX&gt;&gt;&gt;移至<div class"cut">

这样最终的HTML看起来像这样:

<div class='title'>
  TITLE1
</div>

<div class='title2'>
  TITLE2
</div>

<div class='cut'>
  XXX
</div>

有关我当前的代码,请参阅https://jsfiddle.net/bro69zvb/6/

1 个答案:

答案 0 :(得分:1)

您只需在代码末尾使用拆分功能:

var Enumber1 = new Array();
          $(".title").each(function(i){
          var text = $(this).text();
          if(text.indexOf('[') != -1 || text.indexOf(']') != -1){
            var Ntext1      = text.split('[')[0];
            Enumber1[i] = text.split('[')[1].split(']')[0];
             $(this).text(Ntext1);
           }
         });
         $(".cut").each(function(i){         
           $(this).fadeIn("slow");
          if(Enumber1[i] != undefined){
            $(this).text(Enumber1[i]);
          }else{
            $(this).css('N/A');
         }
 });
 
// Get the text from <div class="title>
var titleText = $(".title").text();

//TITLE:
  // Get the text before the " - "
  title = titleText.split(" - ")[0];
  // Put the result inside <div class="title">
  $(".title").html(title);

//TITLE2:
  // Get the text after the " - " before the next space
  title2 = titleText.split(" - ")[1].split(" ")[0];
  // Put the result inside <div class="title2">
  $(".title2").html(title2);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="title">
Tile1 - Tile2 [XXX]
</div>
<div class="title2">
</div>
<div class="cut">
</div>