我有一个情况,希望这里的专家能帮助我解决这个问题。我需要为前三个标签获取“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]
谢谢,
答案 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
答案 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(', ') + ']');
});