获取所有Ajax加载的li元素

3
问题在于我找不到从ajax获取的内容中获取所有li.form-field元素的方法。尝试了许多方式使用find函数,但我不明白出了什么问题。
例如,我这样做:console.log("fields", $(self.element)[0]); 我可以看到元素.form-field存在。

enter image description here

但是当我尝试获取它们时,它返回错误。
console.log("fields", $(self.element)[0].find('.form-field'));

1
$(self.element).find('.form-field')怎么样? - Pointy
@Pointy,还是没有任何长度为0的东西。这里是console.log的图像 https://imgur.com/HvblT1Z - Lolipopcoder
1
请注意,$(self.element)[0] 正好等于 self.element - Pointy
2
你需要在这里发布你的实际代码。 - Pointy
1
当您尝试获取元素时,可能这些元素并不存在。Ajax 是异步的,您必须确保在创建这些元素后再去尝试获取它们。 如果您是在 ajax 响应返回的时候创建的这些元素,那么您需要在 promise 的 resolve 处理程序中访问它们。尝试以下代码,并查看有多少个 .form-field 元素存在:(function(){var els=$(".form-field");debugger;})() - HMR
1
@HMR 你是对的!谢谢。请发布一个答案。 - Lolipopcoder
1个回答

1
假设您正在使用类似 jQuery load 的东西,您应该在 jQuery 完成请求并设置 dom 后访问元素。
$( "#result" ).load( "ajax/test.html", function() {
  console.log("form fields:",this.querySelectorAll('.form-field').length);
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接