gpt4 book ai didi

jquery - 选择器数组 : for loop vs. $.each

转载 作者:行者123 更新时间:2023-12-01 02:06:06 25 4
gpt4 key购买 nike

给定以下选择器数组(每个在我们的 CSS 中都是 display: none)和 for 循环:

var arr = ['#home', '#news', '#tidy'];

for (i=0;i<=arr.length;i++){
$(arr[i]).toggle();
}

使用 $.each (大概还有 $(this) )的等效项是什么?

编辑

好的,我了解使用 join:

var s = arr.join();
$(s).toggle();

我没有意识到“像许多其他 jQuery 方法一样,toggle 在内部调用每个方法,因此不需要使用每个方法”,所以 +1 给你@undefined,但是......

这个问题是最初提出的,因为即使我:

$.each(arr, function(){
$(this).text("my id is " + this + ".");
});

我收到未定义的(!)错误。 (公平地说,有 .toggle 和 .insertAfter 等,我试图简化)为什么上面不等于:

$('#home').text('my id is #home.');
$('#news').text('my id is #news.');
$('#tidy').text('my id is #tidy.');

编辑2

好吧,这是一个语法问题 - $(this) 需要前置 '' +:

$('' + this).text('My id is ' + this + '.')

是否有规则规定 $(this) 何时需要进行此类处理?

最佳答案

尝试

var arr = ['#home', '#news', '#tidy'];
$(arr.join(',')).toggle();

$(arr.join(',')) => $('#home, #news, #tidy'),它选择所有 3 个元素,然后对所有选定的元素进行切换()操作。

<小时/>

如果你这样做

$.each(arr, function(){
$(this).text("my id is " + this + ".");
});

this 实际上是一个字符串对象,而不是一个字符串基元,因此您在返回形式 $(this) 中得到的是一个包装字符串对象而不是元素的 jQuery 对象选择器将匹配。将字符串基元 '' 添加到字符串对象将为您提供一个字符串基元,这就是它以这种方式工作的原因。 如果您必须使用 $.each 更好地使用传递给回调函数的参数,则第一个参数是数组的索引,第二个参数是索引处的值。

$.each(arr, function(index, value){
$(value).text("my id is " + this + ".");
});

http://jsfiddle.net/2TPLD/

关于jquery - 选择器数组 : for loop vs. $.each,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16117105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com