非常简单的 JSFiddle 演示了问题(您需要查看调试控制台,因为console.log
用于演示问题)。第二个 console.log 语句为空。但是,如果我el
从以下行中删除,代码将起作用:
var items = $('li[data-level="2"]', el);
使它变成:
var items = $('li[data-level="2"]');
然后代码工作。谁能解释这是为什么?不知道为什么声明行el
会丢失,它在 JSFiddle 中为我显示,但这是 JavaScript 面板中的所有代码:
$(document).ready(function() {
var el = $('ul');
var items = $('li[data-level="2"]', el);
console.log(items);
var visible = items.filter(':visible');
console.log(visible);
});