Jquery 如何找到Ajax添加内容的子项,然后执行函数
我有htmlJquery 如何找到Ajax添加内容的子项,然后执行函数,jquery,html,ajax,Jquery,Html,Ajax,我有html <ul id="main"> <li id="A100"> <ul class="slides"> <li><img1></li> <li><img2></li> </ul> </li> <l
<ul id="main">
<li id="A100">
<ul class="slides">
<li><img1></li>
<li><img2></li>
</ul>
</li>
<li id="A99">
<ul class="slides">
<li><img1></li>
<li><img2></li>
</ul>
</li>
</ul>
我必须使用children()而不是find(),因为我只想在级别1
编辑:
我会在电视上“做点什么”。ajax的成功。(如果这有助于更好地理解问题)
EDIT2:谢谢你的建议。我找到了这个。甚至在我使用ajax之前,我就在现有的html上“做点什么”。(即A100、A99)
如果我使用
$("#main li").each(function()
{
});
它可以像预期的那样工作,但是如果我使用
$("#main").children("li").each(function()
{
});
它不工作。这里有什么区别?如果我知道这一点,我想我可以解决手头的问题
这样的东西行吗?我试过了,但没有成功,但可能是我做错了吗
$("#main li[id$='A99']").nextAll().each(function()
{
});
你可以这样做。但是,如果您使用AJAX添加它们,并且此函数位于
document.ready()中,则不会在新元素上调用它。你必须在它们被添加后调用它
$("#main").children("li[id$='99']").nextAll().each(function(){
$(this).html("test"); // do something
});
你可以这样做。但是,如果您使用AJAX添加它们,并且此函数位于document.ready()中,则不会在新元素上调用它。你必须在它们被添加后调用它
$("#main").children("li[id$='99']").nextAll().each(function(){
$(this).html("test"); // do something
});
使用以下代码:
使用此代码:
如果您不能完全确定id
的数字是否会减少,您可以主动测试id
(A00
)的格式,并且该数字是否小于100
:
$('#main > li').filter(function () {
var id = this.id;
return (/^A\d{2}$/).test(id) && parseInt(id.replace(/[^0-9]/g, ''), 10) < 99;
}).each(function(){
// do whatever, for example:
this.classList.add('selected');
});
$('#main>li')。过滤器(函数(){
var id=this.id;
返回(/^A\d{2}$/).test(id)和&parseInt(id.replace(/[^0-9]/g',),10)<99;
}).each(函数({
//做任何事,例如:
this.classList.add('selected');
});
参考资料:
- CSS:
- JavaScript/DOM:
- jQuery:
如果您不能完全确定id
的数字是否会减少,您可以主动测试id
(A00
)的格式,以及该数字是否小于100
:
$('#main > li').filter(function () {
var id = this.id;
return (/^A\d{2}$/).test(id) && parseInt(id.replace(/[^0-9]/g, ''), 10) < 99;
}).each(function(){
// do whatever, for example:
this.classList.add('selected');
});
$('#main>li')。过滤器(函数(){
var id=this.id;
返回(/^A\d{2}$/).test(id)和&parseInt(id.replace(/[^0-9]/g',),10)<99;
}).each(函数({
//做任何事,例如:
this.classList.add('selected');
});
参考资料:
- CSS:
- JavaScript/DOM:
- jQuery:
假设ID总是按降序排列,这就可以了
$("#main").find('#A99').nextAll().each(function(){
//$(this)... will yield A98, A97
});
这样就可以了,假设ID总是按降序排列
$("#main").find('#A99').nextAll().each(function(){
//$(this)... will yield A98, A97
});
所以你想找到所有小于A99的ID(找到A98和A97?@Chausser是的。最好将所有ID放在ul(即A98和A97)中的A99之后(而不是“小于”)。“小于”在技术上也是正确的。因此,您要查找所有小于A99的ID,即查找A98和A97吗?@Chausser yes。最好将所有ID放在ul(即A98和A97)中的A99之后(而不是“小于”)。根据爱因斯坦的说法,你是个糟糕的老师,因为你让一个5岁的孩子的事情变得有点复杂;)你能帮我修改2吗?根据爱因斯坦的说法,你是个糟糕的老师,因为你让一个5岁的孩子觉得事情有点复杂;)你能帮我编辑2吗?这会在DOM中正确显示html,但幻灯片图像不会显示。我是在ajax成功后才这么说的,我也不觉得有什么不对(你能看看我在qn中的编辑2吗?@aVC你的编辑2应该能按预期工作。我不知道为什么没有更多信息。你到底想为“做点什么”做些什么?我试图在图像上使用,当用户向下滚动时会加载ajax。我知道,DOM中的html看起来不错,但图像不会显示:(@aVC仅仅使用$(“#main li”)有什么错。each()
如果它工作,这会在DOM中正确显示html,但是幻灯片图像没有显示。我在ajax成功后调用它,我也没有看到任何错误:(你能看看我在qn中的编辑2吗?@aVC你的编辑2应该能按预期工作。我不知道为什么没有更多信息。你到底想为“做点什么”做些什么?我试图在图像上使用,当用户向下滚动时会加载ajax。我知道,DOM中的html看起来不错,但图像不会显示:(@aVC使用$(“#main li.)each()
有什么问题
$("#main").find('#A99').nextAll().each(function(){
//$(this)... will yield A98, A97
});