Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为json对象将number设置为class_Javascript_Jquery_Json - Fatal编程技术网

Javascript 为json对象将number设置为class

Javascript 为json对象将number设置为class,javascript,jquery,json,Javascript,Jquery,Json,我返回JSON以显示注释的历史记录,从最近的注释开始 我正在尝试为列表项标记中的类设置一个数字 例如,我试图实现以下目标: <li class="1">comments</li> <li class="2">comments</li> <li class="3">comments</li> // and so on 评论 评论 评论 //等等 我正在使用以下工具: $.post('process/searchCommen

我返回JSON以显示注释的历史记录,从最近的注释开始

我正在尝试为列表项标记中的类设置一个数字

例如,我试图实现以下目标:

<li class="1">comments</li>
<li class="2">comments</li>
<li class="3">comments</li>
// and so on
评论 评论 评论 //等等 我正在使用以下工具:

$.post('process/searchComments.php', {histuid: histuid}, function(data)
{
  var obj = JSON.parse(data);
  $('#transactionHistory').empty();
  var htmlToInsert = obj.map(function (item)
  {
    var number = 0;
    number++;

    return '<li class="'+number+'">item.comment</li>';
  }).join('');
  $('#transactionHistory').html(htmlToInsert);
});
$.post('process/searchComments.php',{histuid:histuid},函数(数据)
{
var obj=JSON.parse(数据);
$('#transactionHistory').empty();
var htmlToInsert=obj.map(函数(项)
{
var数=0;
数字++;
返回“
  • item.comment
  • ”; }).加入(“”); $('#transactionHistory').html(htmlToInsert); });
    但我要退回这个:

    <li class="1">comments</li>
    <li class="1">comments</li>
    <li class="1">comments</li>
    // and so on
    
    评论 评论 评论 //等等
    如何更改代码,使其显示类中的连续数字?

    您的问题是因为您在每次迭代中定义了
    number
    ,并将其设置为
    0

    要解决此问题,可以使用
    map()
    handler函数的第二个参数,该参数是正在迭代的集合中当前元素的索引。您可以将其连接到字符串:

    var数据='[“lorem”、“ipsum”、“dolor”、“sit”];
    var obj=JSON.parse(数据);
    var htmlToInsert=obj.map(函数(值,i){
    返回“
  • item.comment
  • ”; }); $('#transactionHistory').html(htmlToInsert)
    
    
      之所以发生这种情况,是因为您定义了数字,并在每次迭代中将其设置为0。 试试看:

      var编号=0;
      $.post('process/searchComments.php',{histuid:histuid},函数(数据)
      {
      var obj=JSON.parse(数据);
      $('#transactionHistory').empty();
      var htmlToInsert=obj.map(函数(项)
      {  
      数字++;
      返回“
    • item.comment
    • ”; }).加入(“”); $('#transactionHistory').html(htmlToInsert); });
      您为什么要这样做?我这样问是因为增量id/类属性通常是一种反模式,并且问题可以用更好的方式解决。基本上,我被要求强调最近的评论。我想我可以使用JQuery设置类,然后使用CSS用1突出显示该类。希望有道理。评论是按日期顺序追加的吗?第一个是需要突出显示的吗?返回的注释中最新的注释是第一个。好的,在这种情况下,您可以使用CSS。我用另一个例子编辑了下面的答案。哇。这么简单。我想得太多了。这么简单的修复。先生,你是个天才。我不必对htmlToInsert部分进行更改。我所做的只是添加了CSS,而且效果很好。非常感谢。
      var number = 0;
      $.post('process/searchComments.php', {histuid: histuid}, function(data)
      {
         var obj = JSON.parse(data);
         $('#transactionHistory').empty();
         var htmlToInsert = obj.map(function (item)
         {  
            number++;
         return '<li class="'+number+'">item.comment</li>';
       }).join('');
      $('#transactionHistory').html(htmlToInsert);
      });