javascript - 为什么在 each() 中未定义 jQuery 选择器属性?

标签 javascript jquery

给定以下代码,为什么选择器属性在第一个实例中起作用但在第二个实例中不起作用?它们不都是 jQuery 对象吗?

<span class='tst'>span</span>​

var tst = $('.tst');
console.log(tst.selector); 
// prints '.tst'

$('.tst').each(function() { console.log(this.selector);});
// prints undefined​​​​​​​

最佳答案

this,在 .each() 循环的上下文中,不是 jQuery 对象,因此 selector 属性未定义。

你需要先让它成为一个jQuery对象:$(this).selector

但是,需要注意的是,selector 属性在 .each() 循环中会返回一个空字符串。

编辑

如果您绝对需要 .each() 中的 selector 属性,一种选择是缓存您的选择器:

var cached = $('.tst');

cached.each(function() { 
    console.log(cached.selector); // Will display ".tst"
});

关于javascript - 为什么在 each() 中未定义 jQuery 选择器属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11405894/

相关文章:

javascript - 将音频添加到视频

javascript - 将复选框值传递给引导模态并根据 id 调用 div 模态

javascript - ajax HTML 内容未在 bootstrap pop 中呈现

javascript - 如何创建无限缓入和缓出 CSS 动画循环?

Javascript - 为页面上的所有图像链接添加 img 标签

javascript - 为什么生成器中的console.logs按这样的顺序出现?

php - 更改程序生成的选择元素列表中特定选择元素的背景颜色

jquery - 将图像从 Jquery .animate 图像转换为动画 GIF?

javascript - 如何使用 jQuery 将数字添加到输入字段中的当前数字?

javascript - 使用 lodash 将内部数组元素小写