2011-05-16 42 views
1

在下面的動態生成表中,我想使用JavaScript DOM遍歷和查找html控件(input,select,textarea)。我不想跨度和div值。使用JavaScript在HTML中查找輸入

任何人都可以提供一個關於如何遍歷的想法嗎?

<html> 
    <head>Html</head> 
     <body> 
      <tr> 
        <td> 
        <div id="one"></div> 
        </td> 
        <td> 
         <input type="text" name="textbox" id="txtid" value=10"/> 
        </td> 
        <td> 
         <select id="cuskstatus" name="cuskstatus" class="selectStyleBorder"> 
           <option selected value="LOCAL">Local</option> 
           <option value="GLOBAL">Global</option> 
         </select> 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <textarea id="tareaid" name="" value="10"/> 
        </td> 
        <td> 
         <span id="span1">value</span> 
        </td> 
       </tr> 
      </body> 
    </html> 
+0

如果項目順序不重要,可以使用'document.getElementByTagName'。 – sitifensys 2011-05-16 18:05:10

+0

你可以使用jQuery,還是僅限於純JavaScript? – drudge 2011-05-16 18:08:27

+0

@jnpcl JavaScript好得多,但jQuery好的沒問題 – 2011-05-16 18:22:24

回答

0

將jQuery使這個問題簡單:

$('input','select','textarea') 

這將返回所有的輸入,選擇和textarea元素的jQuery的集合。

+1

這不是一個好的解決方案,包括整個圖書館只是爲了收集頁面上的幾個元素:) – Teneff 2011-05-16 18:10:58

+0

好是主觀的。從務實的角度出發,用正確的工具快速完成工作,這是一個很好的解決方案。 – 2011-05-16 18:12:50

+2

如果您已經在您的項目中使用jQuery,那麼使用jQuery非常好。僅僅爲了做到這一點就包括jQuery,就像用核武器捕獵兔子一樣。 – 2011-05-16 18:13:19

4

我會做這樣的

var desired_tag_names = new Array('select', 'input', 'textarea'); 

function getElements(e) { 
    var elements = new Array(); 
    for (i=0; i<e.length; i++) { 
     var el = document.getElementsByTagName(e[i]); 
     for (j=0; j<el.length; j++) { 
     elements.push(el[j]); 
     } 
    } 
    return elements; 
} 

var all_the_desired_elements = getElements(desired_tag_names); 
+0

@teneff謝謝,但要求是,如果我們連續行,我們必須得到所有的HTML控制,然後只切換到下一行...讓我知道如果你有任何疑問... – 2011-05-16 18:14:53

+0

@BALA檢查編輯 – Teneff 2011-05-16 18:19:47

+0

@teneff請解釋這些getElements(document.getElementById('row199'),desired_tag_names);我是新來的js ... – 2011-05-16 18:24:59

1

在普通的JavaScript,只要使用form.elements

假設你已經一個<form id="formid">

var inputs = document.getElementById("formid").elements; 
// ... 

或者,如果你想穿越在每個基於表格的所有形式的文件,只是使用document.forms先得到所有形式。

for (var i = 0; i < document.forms.length; i++) { 
    var form = document.forms[i]; 
    var inputs = form.elements; 
    // ... 
} 

如果你已經在使用jQuery,或者是開放的,使用:input選擇。

var $inputs = $(':input'); 
// ...