jQuery通过类搜索获取元素的id

这是我的HTML:

a
b

我想使用该div的类(“.head-div”)获取父div(“#my_box_one”)的ID

 $(document).ready(function(){ $(".some_box").click(function(){ var abc = $(this).parentsUntil(".head-div").attr("id"); // also tried $(this).parent(".head-div") -- same effect alert(abc); // Shows as Undefined }); }); 

我可以做以下事情,它会工作正常,但似乎不对。

 var abc = $(this).parent("div").parent("div").attr("id"); 

您可以使用.closest(selector) ,例如:

 var abc = $(this).closest(".head-div").attr("id"); 

http://api.jquery.com/closest/

.parent(selector)仅选择元素的直接父级。

parentsUntil获取所有父元素,直到选择器匹配的元素。 它不包括匹配的元素。 你试图获得干预divid ,这显然是未定义的。

你需要使用closest ,它在DOM树上,直到找到与选择器匹配的元素,然后返回该元素:

 var abc = $(this).closest(".head-div").attr("id"); 

编辑:为了提高速度,但在更改标记时灵活性较低,可以使用parentNode属性:

 var abc = this.parentNode.parentNode.id;