jQuery更改变量并应用于以前运行的代码

时间:2016-08-21 11:58:11

标签: jquery variables onclick

我想浏览一个JSON文件。为了能够这样做,我创建了导航链接,用于更改变量i的值。我缺少的是如何在上面的代码中应用变量。

$(document).ready(function(){
  var i = 0;
  var len = 10;
  $.getJSON(file, function(data) {
    $.each(data, function (id, dat) {           
      $('div').append('<p>'+ id +'<span id="nav'+ id +'">');
      for(var j = 0; j < Object.keys(dat).length; j += len){
        $('#nav'+ id).append('<a>'+ j +'</a> ');
      }
      $('div').append('</span></p>');
      $.each(dat, function (k, d) {
       if((k >= i) && (k < i + len)) $('div').append('<span>'+d.detail)+'</span>'; //change i
      });
    });
  });

  $('div').on('click', '[id^=nav] a', function(){
    i = $(this).text();
  });   
});

更新:这是JSON文件

{"5498":[{"detail":"ny"},{"detail":"qwe"},{"detail":"ghg"},{"detail":"werwe"},{"detail":"bgg"},{"detail":"qwe"},{"detail":"hgh"},{"detail":"qewq"},{"detail":"ggf"},{"detail":"vc"},{"detail":"htr"},{"detail":"htr"},{"detail":"jtyj"},{"detail":"eqw"},{"detail":"gfg"}],"46546":[{"detail":"greger"},{"detail":"jytjyt"},{"detail":"werwer"},{"detail":"jjyt"},{"detail":"greger"},{"detail":"hjtyjty"},{"detail":"fds"},{"detail":"thtr"},{"detail":"qwe"},{"detail":"htrh"},{"detail":"jyjjy"},{"detail":"ewrwe"}]}

脚本产生这样的输出

54980 10 

nyqweghgwerwebggqwehghqewqggfvc

465460 10 

gregerjytjytwerwerjjytgregerhjtyjtyfdsthtrqwehtrh

当我点击某些链接时,我想改变它。 G。当&#34; 10&#34;单击,输出将如下所示。如果我点击&#34; 0&#34;,它将再次如上所示。

54980 *10*

htrhtrjtyjeqwgfg

465460 10 

gregerjytjytwerwerjjytgregerhjtyjtyfdsthtrqwehtrh

1 个答案:

答案 0 :(得分:0)

最佳解决方案似乎是在解析期间创建一个对象/数组,然后修改内容

 $('div').on('click', '[id^=nav] a', function(){
   i = $(this).text()*1;
   for(var j = i; j < i + len; j ++) if(!(obj[id][j] === undefined || obj[id][j] === null)) $('#nav'+id).after('<span>'+obj[id][j].detail)+'</span>');
});