在运行以下jquery代码时,我在警告框中不断得到“未定义”。如果我用id =“back”替换class =“back”并在jquery代码中反映相同,它可以正常工作。但我的情况是,最接近的需要是上课而不是身份证。如何解决这个问题?
HTML:
<div id="up">
<div id="boom">
<div class="back"> </div>
</div>
</div>
JQUERY:
$(document).ready(function(){
alert($(".back").closest("div").attr("id"));
});
答案 0 :(得分:3)
.closest
从当前节点开始。但是此节点没有id
属性。
您需要更改.closest
中的选择器,如下所示:
$(document).ready(function(){
alert($('.back').closest('div[id]').attr('id'));
});
现在,您正在搜索div
作为属性的id
。
答案 1 :(得分:0)
那是因为你的
<div class="back">
没有id属性,所以它将是未定义的,请查看
.attr("class")
它将返回班级名称
答案 2 :(得分:0)
您也可以使用此
$(document).ready(function(){
alert($(".back").parents("div").attr("id"));
});
答案 3 :(得分:0)
closest()
方法检查,因此如果要查找class = "back"
的第一个anchester(父)div标签,那么它不应该是div标签,因此您需要更改div标签到span或其他标签
$(document).ready(function() {
console.log($(".back").closest("div").attr('id'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="up">
<div id="boom">
<span class="back"> </span>
</div>
</div>