Во-первых, ваш пример верен, а во-вторых, так будет делать большинство людей. Здесь нет ключевого слова, просто поменять направление и пройти DOM для наиболее вероятного родителя (что глупо, так как вы его уже нашли, верно?). В таком случае я бы порекомендовал промежуточную переменную, даже если другие ответчики правильно показали, как использовать closest
. (Кроме того, он опирается на некоторую техническую специфику, что <form>
внутри <form>
является недопустимым HTML. Для таких вещей, как <div>
, нет гарантии, что он не пересекает ни одного дочернего элемента <div>
, который ищет следующий <a>
.)
В jQuery вы видите много таких вещей:
$("#parent").something(function() {
var _this = this;
// var self = this;
// var that = this;
// var someMoreMeaningfulName = this;
$("#child", this).somethingElse(function() {
$(_this).somethingEvenElser();
...
});
});
Это не самая красивая вещь для чтения, но шаблон встречается достаточно часто, чтобы его можно было легко узнать. Я несколько рекомендую то, что вы делаете (var form
) вместо таких вещей, как _this
(подчеркивание может подразумевать закрытые переменные), self
(на самом деле это не так) и т. Д.