如何将数据更新到 js 中特定位置的文件



我有一个包含数据的文件,如下所示,

Test.txt,
  <template class="get" type="amp-mustache">
      <div class="divcenter">
/////Need to append data at this point/////
      </div>
  </template>

我有如下数据

[ 
  {'text':'<p>grapes</p>'},
  {'text':'<p>banana</p>'},   
  {'text':'<p>orange</p>'},
  {'text':'<p>apple</p>'},
  {'text':'<p>gua</p>'}
]

附加数据后应该是,

  <template class="get">
      <div class="divcenter">
        <p>grapes</p>
        <p>banana</p>   
        <p>orange</p>
        <p>apple</p>
        <p>gua</p>
      </div>
  </template>

我的代码,

fs.readFile(Test.txt, function read(err, data) {
    if (err) {
           throw err;
     }
   var file_content = data.toString();
   var c = file_content.indexOf(' <div class="divcenter">');
});

但是找到索引后如何追加呢?

你可以

这样做:

  • 查找要插入字符串的索引
  • 对源字符串进行切片并插入新字符串

    fs.readFile(Test.txt, function read(err, data) {
       if (err) {
          throw err;
       }
       var file_content = data.toString();
       var str = "<p>grapes</p>
               <p>banana</p>   
               <p>orange</p>
               <p>apple</p>
               <p>gua</p>";
       var idx = file_content.indexOf('<div class="divcenter">') + '<div class="divcenter">'.length;
       var result = file_content.slice(0, idx) + str + file_content.slice(idx);
    });
    
这不是

仅使用substr的最优雅的方式

var needle = '<div class="divcenter">';
var newString = file_content.substr(0, c + needle.length)
    + '__NEW_STRING__' 
    + file_content.substr(needle.length - 1);

编辑:

一种更优雅的方法是使用 cheerio 将字符串遍历为 DOM。

为什么不在jquery中做。

使用 for 循环来执行此操作:

var uiDiv = $(".divcenter");
for(var i=0; i<data.length; i++){
   uiDiv.append("<p>'"+data[i]+"'</p>");
}

希望它有效。

相关内容

  • 没有找到相关文章

最新更新