【发布时间】:2012-07-06 14:00:11
【问题描述】:
在以下代码中:
$(document).ready( function () {
var hideInit = function () {
$(selector1).hide();
}
var loadInit = function () {
//get data
var thingo = $('<div />');
//populate thingo with a bunch of divs matching selector1
$(selector2).append(thingo);
}
loadInit();
hideInit();
});
我正在解析一些数据并用它在loadInit 中填充DOM,然后我希望.hide 刚刚创建的DOM 中存在的与selector1 匹配的每个元素。
不幸的是元素没有被隐藏 - 我在这里做错了什么?
谢谢!
解决方案
正如许多人所建议的那样,我的选择器并不正确,但这是我调用函数的顺序。为了保证hideInit 在loadInit 完成后运行,我在loadInit 的内部调用它。
$(document).ready( function () {
var hideInit = function () {
$(selector1).hide();
}
var loadInit = function () {
//get data
var thingo = $('<div />');
//populate thingo with a bunch of divs matching selector1
$(selector2).append(thingo);
hideInit();
}
loadInit();
});
感谢您的 cmets/ 回答!
【问题讨论】:
-
如果你把 alert($('selector1').length;);作为 hideInit 的第一行?
-
$('div')不是正确的构造函数,您需要使用$('<div/>')来执行该追加。 -
你的意思是
var thingo = $('<div>');,对吧? -
也许您也可以将您的 html 文件提供给我们,以便我们了解您想要做什么? ;) 我不明白 selector1 和 selector2 是什么。是那些课吗?在这种情况下,您应该在前面加上
.。 -
请提供一些更好的例子...您的例子似乎留下了一些问题。
标签: javascript jquery