如何使用jquery获取每个函数的值列表

时间:2016-05-12 08:18:04

标签: jquery html ajax

我正在尝试从<li data-nid="1">标记获取数据值。 <li>列表是根据Ajax查询响应生成的。

$.each(data.notifications.detail,function(index, element){
$('#notifications_list').append('<li id="element" data-nid ='+element.id+'><a>'+element.texte+'</a></li>');
});

要恢复价值,我尝试了以下方法:

var array = new Array();
  $( "#element").each(function() {
        var id = $( this ).data( "nid" );
        array.push(id);
   });

但我总是得到一个元素,而它总是第一个元素。所以也许有人会向我澄清情况。

3 个答案:

答案 0 :(得分:2)

首先,你不能有多个具有相同each()的元素,因此在id选择器上使用id是完全多余的。您应该将class更改为map()

要从附加元素创建值数组,您只需使用$.each(data.notifications.detail, function(index, element){ $('#notifications_list').append('<li class="element" data-nid="' + element.id + '"><a>' + element.texte + '</a></li>'); }); var array = $(".element").map(function() { return $(this).data("nid"); }).get(); 即可。试试这个:

each()

另请注意,您可以在追加新li元素的同一var array = []; $.each(data.notifications.detail, function(index, element){ array.push(element.id); $('#notifications_list').append('<li class="element" data-nid="' + element.id + '"><a>' + element.texte + '</a></li>'); }); 循环中创建值数组,如下所示:

{{1}}

答案 1 :(得分:0)

一个html&#34; id&#34;必须是独一无二的 您可以使用父<ul>进行过滤,然后使用children()filter('li')

$("#notification_list").children().each(function() {
    var id = $( this ).data( "nid" );
    array.push(id);
});

答案 2 :(得分:0)

由于class是唯一的,因此请使用 var xScale = d3.scale.ordinal().rangeRoundBands([0, width], .1); var yScale = d3.scale.linear().range([height, 0]); var hAxis = d3.svg.axis().scale(xScale).orient('bottom').tickFormat(d3.time.format("%Y-%m-%d")); ,它会正常工作。