在以下代码中:
$(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();
});
感谢您的意见/答案!
答案 0 :(得分:1)
这可以通过使用append
,filter
和hide
jQuery方法操作DOM的单行来实现。
$('selector2').append(thingo)
- 附加项目.filter('selector1')
- 原始选择器,仅选择与过滤器匹配的那些.hide()
- 隐藏已过滤的项目像这样:
$(function()
{
var thingo = $('<div />');
$('selector2').append(thingo).filter('selector1').hide();
}
或者,如果您要隐藏附加的项目,则需要在filter
之后添加其他链,以便您可以使用find()
方法,如下所示:
// this will hide all child divs, so you may want to be more specific
$('selector2').append(thingo).filter('selector1').find('div').hide();
答案 1 :(得分:0)
这里有一些有用的东西。我不确定,如果这是你试图实现的东西..无论如何,这个例子就在这里:http://jsfiddle.net/dyNbw/
JS:
$(document).ready( function () {
var hideInit = function () {
$('.name1').hide();
}
var loadInit = function () {
//get data
var thingo = $('<div>Hi there</div>');
//populate thingo with a bunch of divs matching selector1
$('.name2').append(thingo);
}
loadInit();
hideInit();
});
和html:
<div class="name1">This will be hidden</div>
<div class="name2"><span>I want to say:</span></div>