我正在尝试将.closest()与我的HTML页面一起使用。我有这个HTML:
<body>
<div class="listcontainer">
//Content
<div class="button">Ok</div>
</div>
</body>
当用户点击&#39; .button&#39; ,我通过ajax调用动态地将这个HTML添加到上面的HTML。成功时,ajax调用会将以下html附加到body:
<div class="listpanel">
//Content
</div>
所以,我在listcontainer下面有listpanel,它们都在body体内。现在我使用.closest as:
$listpanel = $('.listpanel');
$div = $listpanel.closest('.listcontainer');
但不知何故,最接近的是选择html元素而不是listcontainer。我不确定为什么会这样。有人可以帮我这个吗? 谢谢。
编辑:这就是我的Ajax调用的样子:
$('.button').click(function(){
$.ajax({
url:"listpanel.html",
cache: false,
dataType: "html",
success:function(data)
{
$('body').append(data);
}
});
});
答案 0 :(得分:2)
如果您将div.listpanel附加到正文,则它不在div .listcontainer中。因此,最接近的不会找到它。你需要搜索兄弟姐妹:
var myDiv = $('.listpanel').siblings('.listcontainer').first();
或将其附加到div .listcontainer,然后使用nearest()方法
答案 1 :(得分:0)
.closest
遍历祖先DOM树。它不会看兄弟姐妹或钻进兄弟姐妹的子树。这是预期的功能。