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