如何找到按钮的最近动作属性?

时间:2014-07-31 18:13:44

标签: javascript jquery

现在我正在使用以下代码从html表单中提取操作:

var path = button.parent().parent().attr("action");

它有效,但.parent().parent()非常脆弱。如果我在这个和表单之间插入一个新标签怎么办?它会破坏我的代码的功能。对此更安全的替代方案是什么?

3 个答案:

答案 0 :(得分:5)

您可以使用.closest()

var path = button.closest('[action]').attr("action");

这将找到具有动作属性

的最近祖先(或其自身)

答案 1 :(得分:1)

HTML中唯一可以拥有action属性的元素是表单。在HTML中,表单不能包含其他表单。因此,您希望找到作为按钮祖先的表单。

jQuery有一种方法可以找到名为parents的祖先元素(我不知道为什么它不被称为ancestors)。这需要一个选择器,以便您可以过滤它。

button.parents('form').attr('action')

答案 2 :(得分:0)

您还可以使用form对象的HTMLButtonElement属性:

// property
var path = button.prop('form').action;
// attribute
var path = button.prop('form').getAttribute('action');