给定以下代码,为什么选择器属性在第一个实例中起作用但在第二个实例中不起作用?它们不都是 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/