我正在重写一些代码,这些代码适用于目前无效的代码。基本上,我循环遍历div以找出哪一个是可见的,我想继续将此div缓存到jquery对象中。
$('#MainDiv .LPanel').each(function () {
if ($(this).is(':visible') === true) {
var ThePanel = $(this);
}
});
if (ThePanel.width() < 700) { // bugs here
为什么ThePanel无法访问?我错过了什么?
感谢您的建议。
PS:工作的代码只返回attr('id');
,但我想要整个对象!
答案 0 :(得分:3)
您在有限的范围内使用var
。正确的方法是:
var ThePanel;
$('#MainDiv .LPanel').each(function () {
if ($(this).is(':visible') === true) {
ThePanel = $(this);
}
});
if (ThePanel.width() < 700) { // bugs here
你为什么不这样做
var ThePanel = $("#MainDiv .LPanel:visible");
if (ThePanel && ThePanel.width() < 700) ...
???
答案 1 :(得分:1)
在循环外声明变量ThePanel
。每次回调完成时,它都会超出范围。