2013-02-28 89 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']");