jQuery向后选择

Posted

技术标签:

【中文标题】jQuery向后选择【英文标题】:jQuery backward selection 【发布时间】:2011-09-01 21:34:12 【问题描述】:

我有一个表单,我正在使用它来选择它的单选按钮:

$('form[id^="form-"]').find("input:radio");

但是当我在它上面使用一个函数时,我必须使用this(这样我才能知道该函数是从哪个形式触发的)并且this 给了我form > radio-button。如何使用this 获取表单ID?

【问题讨论】:

【参考方案1】:

最简单、最有效的方法是访问相关元素的form 属性:

alert(this.form.id);

【讨论】:

@lonesomeday:IE 至少从 5.5 开始就支持它,它在 DOM 1 级规范中定义。 @lonesomeday:找到了规范中定义的链接 - w3.org/TR/DOM-Level-1/level-one-html.html#ID-6043025【参考方案2】:

要从输入遍历到其包含的表单并获取 id,您可以使用:

$(this).closest('form[id^="form-"]').attr("id");

http://api.jquery.com/category/traversing/

【讨论】:

【参考方案3】:

如果this 是一个子元素,就这样做:

var form_id = $(this).parent().get(0).id;
//or
var form_id = $(this).parent().attr('id');

【讨论】:

【参考方案4】:

$(this).parent().attr('id');

parents() 是因为我不知道输入是否是表单的直接后代。

【讨论】:

ahhhh 如果是直子不要使用parents form > radio-button === 直子

以上是关于jQuery向后选择的主要内容,如果未能解决你的问题,请参考以下文章

向后搜索视觉模式选择

使用向后滑动手势以交互方式取消选择选定单元格

如何在javascript中向前或向后查找用户选择天气?

正则表达式入门选择,分组和向后引用

在存在PDF iframe的文本选择之后,文本输入开始向后键入

jQuery 性能优化和技巧