仅从前三个标签获取“id”值,并在输出中将它们与“,”分开

时间:2015-10-05 22:04:24

标签: javascript jquery arrays

我有一个情况,希望这里的专家能帮助我解决这个问题。我需要为前三个标签获取“id”值,而不是在console.log上以逗号分隔打印值。

我已设法从tag获取值并在输出上打印它。但是,我无法用逗号分隔它们,问题是我得到了所有文章的数量,而不仅仅是3。

这是我提出的jquery代码

jQuery(document).ready(function($) {
       $("article").each(function() {
    var info1 = $(this).attr("id");
    var info2 = info1.replace( /[^\d]/g, '');
    console.log(info2);

});
});

这是测试

http://jsfiddle.net/0mvjbkhs/1/

请注意,我无法对html进行任何更改,我所能做的就是使用jquery完成任务。

请帮助修复我的代码,所以我的输出看起来像 [155569,155570,155571]

谢谢,

3 个答案:

答案 0 :(得分:1)

使用返回数组的jQuery .map()方法;如果您需要一个以逗号分隔的字符串,请使用JavaScript .join()方法。不要忘记:lt(3),说你想要前三个:

var arr1st3 = $('article:lt(3)').map(function() {
    return this.id.replace(/[^\d]/g, '');
}).get();
console.log( arr1st3 );//OUTPUT: ["155569", "155570", "155571"]
//If you want [155569, 155570, 155571] as output
//use return +this.id.replace(/[^\d]/g, ''); instead

DEMO

答案 1 :(得分:0)

jQuery(document).ready(function($) {
  // search by the attribute 
  var ids = $('article')
    // Take only the first three items
    .slice(0, 3)
    // Loop them to return an array
    .each(function() {
      // Get just the id and put that in the array
      return this.attr('id');
    });

  // Format your output
  console.log('[' + ids.join(', ') + ']');
});

答案 2 :(得分:0)

http://jsfiddle.net/0mvjbkhs/4/

jQuery(document).ready(function($) {
    var articles = [];

  $("article").each(function() {
    var info1 = $(this).attr("id").replace( /[^\d]/g, '');
    articles.push(info1);
    if (articles.length == 3) {
        // break;
        return false;
    }
  });
  console.log('[' + articles.join(', ') + ']');

});