Javascript 使用jquery for循环获取值

Javascript 使用jquery for循环获取值,javascript,php,jquery,for-loop,Javascript,Php,Jquery,For Loop,我在数据库中有几个项目,我在href中显示每个项目id的链接 所以我想从PHP while循环中的a href获取id。所以我做了一个for循环来完成它,但它似乎只得到了第一个href attr for (var i = 0; i < check; i++) { var id = $(".id").attr('href'); console.log(id); } 您每次都会获取第一个元素,并记录其href。如果循环每次都在做相同的事情,那么不能期望循环的行为有所不同吗 如

我在数据库中有几个项目,我在href中显示每个项目id的链接

所以我想从PHP while循环中的a href获取id。所以我做了一个for循环来完成它,但它似乎只得到了第一个href attr

for (var i = 0; i < check; i++) 
{
   var id = $(".id").attr('href');
   console.log(id);
} 

您每次都会获取第一个元素,并记录其
href
。如果循环每次都在做相同的事情,那么不能期望循环的行为有所不同吗

如果要获取所有
.id
元素的所有
href
属性,请使用
映射

$('.id').map(function () { return $(this).attr("href") });

它将返回一个数组,其中每个元素都是对应的
.id
元素的
href

在每次迭代中选择相同的元素,然后获取集合中第一个元素的属性。不要像那样循环,您应该使用:

$(“.id”)
返回一个类似数组的对象,其中包含所有匹配元素。你真正想做的是:

var idArray = $(".id");
for (var i = 0; i < check; i++) {
    var id = $(idArray[i]).attr('href');
    console.log(id);
} 
var-idArray=$(“.id”);
对于(变量i=0;i
不确定您在这里要做什么。你能用更多的代码更新一下吗,你从代码中得到了什么,你希望得到什么?没有这些信息很难提供帮助。我在链接href中有一个id,但是这个id根据链接的不同而不同(它来自数据库)。所以我试图得到这个id,但因为我有几个id,我试图得到所有的id,而不仅仅是第一个哦。。。因此,
$('.id')
选择该类的所有元素。您需要执行
$('.id')。每个(function(){…
循环遍历所有
id
类元素。如果所有锚元素的id都是()同样,您将只获得第一个href attr。正如一点:当我们清理此代码时,在每个循环上创建一个新变量是一个坏主意,您可能应该将
var
语句移到此解决方案中
每个
的上方。+1,因为我认为这是正确的,并且问题不是您首先要解决的:)@rockerest这是个什么坏主意?如果我将其移出函数,它将不必要地暴露于外部作用域。我假设外部作用域需要访问ID,因为它可能不在使用它的地方。这是个坏主意,因为每个循环,当
$(“.id”)的计数
变得越来越大。它正在工作!如果我移动上面的var语句,我必须这样做:var id,我必须在函数中返回id?@TheJailbreakBay首先你应该确定你是否应该移动上面的var语句。作用域是Javascript的一个非常重要的部分。如果你决定将其移动到上面,内部匿名函数n已经可以访问它了。你还必须记住,你的函数每次都会返回id,因此如果你想访问每一个id,你需要将id做成一个数组并推送到它,而不是简单地赋值。我现在不理会Paulpro的答案,但祝你好运!有了这个,我将在控制台中得到它:Object[“59”,“59”,“57”,“57”,“56”,“56”]。为什么?因为它返回一个数组,其中每个元素都是相应元素的
href
。paulpro的方法对我来说似乎更好,但我无法让ID离开该函数!
$(".id").each(function(){
   var id = $(this).attr('href');
   console.log(id);
});
var idArray = $(".id");
for (var i = 0; i < check; i++) {
    var id = $(idArray[i]).attr('href');
    console.log(id);
}