Javascript 为json对象将number设置为class
我返回JSON以显示注释的历史记录,从最近的注释开始 我正在尝试为列表项标记中的类设置一个数字 例如,我试图实现以下目标: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
<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);
});