Javascript 为什么我在使用.children for.modal后还需要另一个$()来工作
我想知道为什么我必须这样做:Javascript 为什么我在使用.children for.modal后还需要另一个$()来工作,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我想知道为什么我必须这样做: $($($(“body”).children(“div”)[0]).modal(“show”) 而不是 $(“body”).children(“div”)[0]。模态('show') 函数.children不返回包含节点的列表吗?我是jquery新手,对javascript还没有太多经验,所以我只是想知道有什么不同 .modal是一个引导功能,以防有人怀疑 以下是完整性的上下文: 'click .edit': function (e, value, row, ind
$($($(“body”).children(“div”)[0]).modal(“show”)代码>
而不是
$(“body”).children(“div”)[0]。模态('show')代码>
函数.children
不返回包含节点的列表吗?我是jquery新手,对javascript还没有太多经验,所以我只是想知道有什么不同
.modal
是一个引导功能,以防有人怀疑
以下是完整性的上下文:
'click .edit': function (e, value, row, index) {
$.ajax({
url: "index.php?controller=" + controller + "&action=edit&id=" + row['id'] + "&type=modal",
success: function (result) {
if (result !== null) {
$("body").prepend(result);
$($("body").children("div")[0]).modal('show');
} else {
alert("There was a problem with editing. Please contact a system admin or try again.");
}
}
});
e.stopPropagation();
},
因为(“div”)[0]
将返回一个dom元素,其中没有关联的jquery函数。为了将jquery函数与该元素相关联,需要通过扭曲$()
另一个选项是像这样使用eq()
运算符
$(“body”).children(“div:eq(0)”).modal(“show”)代码>返回的元素是一个javascript DOM元素,它没有被任何jQuery函数包装。因此,您必须用另一个$
标记将其包装起来。如果您想获得第一个元素,请使用$(“body”).children(“div”).first()
这将获得第一个元素作为jQuery对象,您可以在其中使用所有jQuery函数。感谢您的清晰解释,但我更喜欢Anoop的答案,因为他让我了解了选择器是什么,所以我选择了他的答案。