jquery.each函数和传递变量

jquery .each function and passing variables

本文关键字:变量 each 函数 jquery      更新时间:2023-09-26

我想循环遍历无序列表中的一组<a>

在jQuery中,我会这样做:

$("#list ul li a").each(function (x) {
 // Do Stuff
});

这可能是一个简单的问题,但我如何将变量传递为函数中显示的id?我想它是这样的:

  var myVar = 'foo';
   $("#list ul li a").each(myVar, function (x) {
     // Do Stuff
     console.log(x);
    });

控制台输出:foo

但这似乎不起作用,我该怎么做?

您不需要在each(myVar, function(x)上传递变量。您可以在each中使用myVar,没有问题。

var myVar = 'foo';
$("#list ul li a").each(function (x) {
   // Do Stuff
   console.log(x); // element index
   console.log(myVar); //foo
});

让我们看看这个代码有什么问题

var myVar = 'foo';
$("#list ul li a").each(myVar, function (x) {
    // Do Stuff
    console.log(x);
});

您将获得:

未捕获类型错误:未定义不是函数

因为execs将第一个参数设置为function,并且它是一个变量。

此外,function(x)永远不会被调用,因为each只接受一个参数。

这是解决方案,

只需像这样使用"this"关键字:

        var myVar = 'foo';
        $("#list ul li a").each(function () {
           console.log($(this).attr('id'));
        });

感谢

var myVar = 'foo';
   $("#list ul li a").each(myVar, function (id) {
     // Do Stuff
     console.log(id.attr("id"));
    });