2013-02-28 31 views
2

因此,我有一个包含多个表单的页面,我希望能够访问特定表单中的输入元素type="datetime"。我知道我可以做$('input[type="datetime"]'),但那会给我所有页面上的输入标签。我也不能使用“form”属性,因为并不是所有的浏览器都使用它(叹息IE)。对我来说更糟糕的情况是做类似的事情:如何使用jQuery访问特定表单和特定类型的元素

$(document.forms["..."].elements).each(function() { 
    if (this.type="datetime") {.....} 
}); 

但我确信这可以通过一个选择器在jQuery中完成。有人能告诉我这是如何与一个选择器?

回答

0

有多种方式做

解决方法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) 
+0

感谢上下文查找解决方案。是否在后代公式中使用上下文的原因是 - 例如性能? – ecco88 2013-02-28 04:16:03

+0

看起来像上下文基地查找速度更快http://jsperf.com/jquery-selector-context-vs-descendant-selector – 2013-02-28 04:27:40

+0

感谢您的洞察力 - 事实证明,后代选择器实际上是最慢的,这使我与上下文基于查找。 – ecco88 2013-02-28 13:14:29

3

将id添加到您的表单中,然后选择该表单中的DOM,如下所示。

$('#form input[type="datetime"]') 
+0

耶 - 尴尬的我忽略了。 – ecco88 2013-02-28 04:17:26

2

没有看到一些HTML,这只是一个黑暗中的镜头。但是,如果你给你的表格一个id你可以这样做:

$("#yourFormId input[type='datetime']"); 

如果你没有身份证,但你知道电话号码,那么这可能做到这一点:

$("form:eq(4) input[type='datetime']");