Javascript 如果应用于类属性,jquery将返回未定义的最近值

Javascript 如果应用于类属性,jquery将返回未定义的最近值,javascript,jquery,Javascript,Jquery,在运行以下jquery代码时,我经常在警报框中看到“未定义”。如果我将class=“back”替换为id=“back”,并在jquery代码中反映相同的内容,它就可以正常工作。但我所处的情况是,最接近的必须是类而不是id。如何解决这个问题 HTML: <div id="up"> <div id="boom"> <div class="back"> </div> </div> </div> 。最近的从当前节点开

在运行以下jquery代码时,我经常在警报框中看到“未定义”。如果我将class=“back”替换为id=“back”,并在jquery代码中反映相同的内容,它就可以正常工作。但我所处的情况是,最接近的必须是类而不是id。如何解决这个问题

HTML:

<div id="up">
  <div id="boom">
  <div class="back">  </div>
  </div>
</div>

。最近的
从当前节点开始。但是这个节点没有
id
属性。 您需要在
中更改选择器,如下所示:

$(document).ready(function(){
  alert($('.back').closest('div[id]').attr('id'));
});

现在,您正在搜索一个属性为
id
div

。最近的
从当前节点开始。但是这个节点没有
id
属性。 您需要在
中更改选择器,如下所示:

$(document).ready(function(){
  alert($('.back').closest('div[id]').attr('id'));
});
现在您正在搜索一个属性为
id
div

这是因为

<div class="back">
它将返回类名

,这是因为

<div class="back">
它将返回类名

您也可以使用

$(document).ready(function(){
 alert($(".back").parents("div").attr("id"));
});
你也可以用这个

$(document).ready(function(){
 alert($(".back").parents("div").attr("id"));
});
closest()
方法从当前节点进行检查,因此如果要查找
class=“back”
的第一个anchester(父)div标记,则它不应是div标记,因此需要将div标记更改为span或其他标记

$(文档).ready(函数(){
console.log($(“.back”).closest(“div”).attr('id'));
});

closest()
方法从当前节点进行检查,因此如果要查找
class=“back”
的第一个anchester(父)div标记,则它不应是div标记,因此需要将div标记更改为span或其他标记

$(文档).ready(函数(){
console.log($(“.back”).closest(“div”).attr('id'));
});



可能有多个元素使用类backCheck返回哪些元素
$(“.back”)
返回。可能是@PranavCBalan的重复项否,没有。你在上面看到的都是代码。除了上面提到的,只有html,带有jquery文件的head标记包括@JoneDotosvky:try
alert($(“.back”).closest(“div[id]”).attr(“id”)可能有多个元素使用类backCheck返回哪些元素
$(“.back”)
返回。可能是@PranavCBalan的重复项否,没有。你在上面看到的都是代码。除了上面提到的,只有html,带有jquery文件的head标记包括@JoneDotosvky:try
alert($(“.back”).closest(“div[id]”).attr(“id”)
如果他给当前元素一个id怎么办?然后他可以使用
.parents
而不是
。最近的
@Marii您的解决方案有效,但我没有得到为什么“div[id]”的解释,而不仅仅是“div”@Jone,div[id]意味着找到必须具有id属性的祖先节点。由于当前div没有,因此它成功地找到了“boom”div@JoneDotosvky,看看这个:如果,他给了当前元素一个id怎么办?然后他可以使用
.parents
而不是
。最近的
@Marii你的解决方案有效,但我没有得到为什么“div[id]”而不仅仅是“div”@Jone,div[id]的解释表示查找必须具有id属性的祖先节点。由于当前div没有,因此它成功地找到了“boom”div@JoneDotosvky,看这个:如果我不给出span并使用just div,它就工作了。这是因为你在最近的()中传递div[id]并在class=“back”div中添加id并测试你的代码如果我不给出span并使用just div,它就工作了。这是因为你在传递div[id]在closest()中,在class=“back”div中添加id并测试代码