如何使用jQuery访问特定表单和特定类型的元素
问题描述:
因此,我有一个包含多个表单的页面,我希望能够访问特定表单中的输入元素type="datetime"
。我知道我可以做$('input[type="datetime"]')
,但那会给我所有页面上的输入标签。我也不能使用“form”属性,因为并不是所有的浏览器都使用它(叹息IE)。对我来说更糟糕的情况是做类似的事情:如何使用jQuery访问特定表单和特定类型的元素
$(document.forms["..."].elements).each(function() {
if (this.type="datetime") {.....}
});
但我确信这可以通过一个选择器在jQuery中完成。有人能告诉我这是如何与一个选择器?
答
有多种方式做
解决方法1.
使用descendant selector
例如:
$('#yourform input[type="datetime"]') //or
$('.yourform input[type="datetime"]') //or
$('form:eq(3) input[type="datetime"]')
解决方案2:使用 基于context了一下
例:
$('input[type="datetime"]', yourform)
答
将id添加到您的表单中,然后选择该表单中的DOM,如下所示。
$('#form input[type="datetime"]')
+0
耶 - 尴尬的我忽略了。 – ecco88 2013-02-28 04:17:26
答
没有看到一些HTML,这只是一个黑暗中的镜头。但是,如果你给你的表格一个id你可以这样做:
$("#yourFormId input[type='datetime']");
如果你没有身份证,但你知道电话号码,那么这可能做到这一点:
$("form:eq(4) input[type='datetime']");
感谢上下文查找解决方案。是否在后代公式中使用上下文的原因是 - 例如性能? – ecco88 2013-02-28 04:16:03
看起来像上下文基地查找速度更快http://jsperf.com/jquery-selector-context-vs-descendant-selector – 2013-02-28 04:27:40
感谢您的洞察力 - 事实证明,后代选择器实际上是最慢的,这使我与上下文基于查找。 – ecco88 2013-02-28 13:14:29