在破解我的业余项目时,我偶然发现了一个令人费解的 jQuery 行为。
我有一个自定义验证插件编写并工作。在插件中,我想使用 .closest() 方法实现一些功能。奇怪的是,这个方法返回多个元素。
这是一个示例代码:
this.closest(".control-group")
$(this).closest(".control-group");
上面两行代码都选择了类“control-group”的所有四个元素。放在我的插件中的这段代码有效:
var element_ID = this.attr("id");
$("#" + element_ID).closest(".control-group")
上面选择了正确且只有一个具有“控制组”类的元素。
我不能使用这个“hack”,因为并非我想要验证的所有元素都设置了“id”属性,所以它不会在所有情况下都有效。
使用 jQuery 1.7.2(似乎是最新的稳定版)。任何想法为什么会这样?