Jquery 函数中的两个参数是什么?这是如何工作的?

Jquery 函数中的两个参数是什么?这是如何工作的?,jquery,Jquery,我在一个应用程序中看到了这一点,它工作得很好,但我不明白它是如何工作的。。。。功能(i,文本)部分在做什么?它们的作用是什么 它正在被使用 某些jQuery方法允许您以这种方式传递函数。执行此操作时,它将迭代jQuery对象中的元素 在这种情况下: i是集合中当前项的索引 text是当前文本内容值(在修改之前) 这是大多数具有此功能的函数的模式 你可以这样想: $(this).each(function( i ) { var i = i; // Redundant, I know.

我在一个应用程序中看到了这一点,它工作得很好,但我不明白它是如何工作的。。。。功能(i,文本)部分在做什么?它们的作用是什么

它正在被使用


某些jQuery方法允许您以这种方式传递函数。执行此操作时,它将迭代jQuery对象中的元素

在这种情况下:

  • i
    是集合中当前项的索引
  • text
    是当前文本内容值(在修改之前)
这是大多数具有此功能的函数的模式

你可以这样想:

$(this).each(function( i ) {
    var i = i; // Redundant, I know.
    var text = $(this).text();
    $(this).text( (text == 'Show') ? 'Hide' : 'Show' );
});
var $th = $(this);
$th.text(($th.text() == 'Show') ? 'Hide' : 'Show' );

编辑:

我想我应该注意到,在您的特定示例中,由于只有一个元素,它似乎用于防止在处理程序中显式调用
text()
两次,如下所示:

$(this).each(function( i ) {
    var i = i; // Redundant, I know.
    var text = $(this).text();
    $(this).text( (text == 'Show') ? 'Hide' : 'Show' );
});
var $th = $(this);
$th.text(($th.text() == 'Show') ? 'Hide' : 'Show' );

我不确定哪一种性能更好。

某些jQuery方法允许您以这种方式传递函数。执行此操作时,它将迭代jQuery对象中的元素

在这种情况下:

  • i
    是集合中当前项的索引
  • text
    是当前文本内容值(在修改之前)
这是大多数具有此功能的函数的模式

你可以这样想:

$(this).each(function( i ) {
    var i = i; // Redundant, I know.
    var text = $(this).text();
    $(this).text( (text == 'Show') ? 'Hide' : 'Show' );
});
var $th = $(this);
$th.text(($th.text() == 'Show') ? 'Hide' : 'Show' );

编辑:

我想我应该注意到,在您的特定示例中,由于只有一个元素,它似乎用于防止在处理程序中显式调用
text()
两次,如下所示:

$(this).each(function( i ) {
    var i = i; // Redundant, I know.
    var text = $(this).text();
    $(this).text( (text == 'Show') ? 'Hide' : 'Show' );
});
var $th = $(this);
$th.text(($th.text() == 'Show') ? 'Hide' : 'Show' );
我不确定哪个性能更好。

检查jQuery API:

函数被传递一个索引(
i
)和文本(
text

text()
将返回jQuery对象文本值

当函数作为参数传递时,函数返回值将设置为jQuery对象文本值

因此,使用当前文本值调用匿名函数,检查它是否为
'Show'
,然后进行相应设置(通过函数返回,然后将返回传递给
text()
-fn)。

检查jQuery API:

函数被传递一个索引(
i
)和文本(
text

text()
将返回jQuery对象文本值

当函数作为参数传递时,函数返回值将设置为jQuery对象文本值

因此,将使用当前文本值调用匿名函数,检查它是否为
'Show'
,然后进行相应设置(通过函数return,然后将其传递给
text()
-fn)