如果您的 HTML 总是这样,那么请使用 @Adil 的方法。但是,如果您需要它更加动态,请使用.siblings()并简单地抓住.first( )一个,这将是“最接近的”。
例如,您可以考虑以下内容:
// The following will grab the closest label to any a tag clicked on
$("a").on("click", function(e) {
var closest = $(this).siblings("label").first();
console.log(closest);
}):
但是,我认为如果它的每一侧都有一个标签,我认为这将抓住第一个标签,如果这是不可取的并且您之前想要第一个标签(例如,您可能在 a 标签之前有多个标签和 p 标签) , 你需要.prev()之外的东西,因为.prev()只会在 a 标签之前抓取 FIRST 元素。在这种情况下,使用.prevAll()结合.first( )来获取 a 标签之前提到的第一个标签。
像这样:
$("a").on("click", function(e) {
var closest = $(this).prevAll("label").first();
console.log(closest);
}):
当然,对于相反的情况,您可以使用.nextAll()
$("a").on("click", function(e) {
var closest = $(this).nextAll("label").first();
console.log(closest);
}):