【问题标题】:JS - JSON/ARRAY pass variable in Constructor (custom library)JS - 构造函数中的 JSON/ARRAY 传递变量(自定义库)
【发布时间】:2015-06-23 08:39:32
【问题描述】:

如果我遵循文档,设置数据输入的正确方法是:

$("#container").flipBook({    

css:"css/style.css",
pages:[  
    {
       src:"images/book1/page1.jpg",
       thumb:"images/book1/thumb1.jpg",
       title:"Cover",
       htmlContent:''
    },
    {
       src:"images/book1/page2.jpg",
       thumb:"images/book1/thumb2.jpg",
       title:"Page two"
    }, 
    etc.. etc..
  ],
  btnNext:true,
  btnPrev:true,
  btnZoomIn:true,
  btnZoomOut:true,
  other parameters...

所以,我想动态插入数据。 我声明了一个新数组,然后从 xml 文件中滚动所有页面,创建一个对象,最后将对象推送到声明的第一个数组中。 var page = new Array();

var created=0;

bla bla bla

$(xml).find('page').each(function(i){

    var singlepage = new Object();                                      
    singlepage.src ="image1.jpg";
    singlepage.thumb="thum1.jpg";
    created++;
    singlepage.title="Page "+created;
    page.push(JSON.stringify(singlepage));
});


var book = {};

book["book-"+id] = $("#tabs-" + id + "").flipBook({

    pages: ????????,
    btnNext:true,
    etc.. etc..

我尝试输入page[page]JSON.parse(JSON.stringify(page))。我不知道如何在构造函数中传递变量。

这似乎是一个非常简单的问题,但我没有找到任何解决方案。 请帮帮我:)

【问题讨论】:

  • page.push(JSON.stringify(singlepage)); 更改为page.push(singlepage);pages: page, 应该可以正常工作。 JSON.stringify 将对象转换为字符串。你想要一个对象,所以不要转换它。
  • 显然,据我所知,pages 属性的预期输出是一个对象数组,因此只需删除JSON.stringify 并设置pages: page跨度>

标签: javascript arrays json object constructor


【解决方案1】:

我认为这应该可行:

var pages = [];
$(xml).find('page').each(function(i) {
  var singlepage = {
    src: "image1.jpg",
    thumb: "thum1.jpg",
    title: "Page " + ++created;
  };
  pages.push(singlepage);
});

你可以只传递pages 对象:

 $("#tabs-" + id + "").flipBook({
   pages: pages
   // ...
 });

【讨论】:

  • 主要区别:page.push(JSON.stringify(singlepage)); -> pages.push(单页);对? :)
  • @FabioSorre:没错,因为你需要一个对象数组,而 stringify 会将一个对象转换为 JSON 字符串,这里不需要。
  • @FabioSorre:我推荐给read about what JSON.stringify does。 (在使用不熟悉的功能之前,请务必阅读文档!)
  • @FabioSorre :完全没问题,问题没问题,格式也没问题,所以不要忘记检查该方法的作用,因为有一天您可能会需要它,知道总是很好数组、对象和 json 字符串之间的区别;)另外,如果您的问题得到解决,请不要忘记接受 andrusieczko 的回答!
  • @FelixKling 感谢您的建议,我知道 stringify 是做什么的;)我用过它,因为在此之前我需要它
猜你喜欢
  • 2015-10-04
  • 2011-06-06
  • 2019-08-30
  • 2020-09-02
  • 2021-02-05
  • 2021-05-15
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多