2011-10-04 70 views
0

在工作中,我使用了正常的html元素和經典的asp動態複選框,這裏有一些html表單(經典的asp返回)。按照使用javascript的形式獲取所有html元素(名稱或ID)

我們要做這個報告和創建數據透視表,所以我需要提供所有的名稱或ID(名稱可能是更好)的HTML對象在它們出現在窗體上的順序(靜態和動態)的列表。有些是隱藏的,直到用戶與依賴對象交互(我們也希望這些)。

我發現有關獲取所有課程的多篇文章,但可以找到這個確切的答案,因爲順序非常重要!

jQuery已經在頁面上使用,所以很好用。

在此先感謝!

+1

這聽起來像一個相當全面的分配;你從哪裏開始?它是如何去的?什麼地方出了錯? –

+0

注意:屏幕上出現的順序並不總是HTML中的順序。聽起來很棘手。 –

+0

我已經創建了表單和動態複選框(來自ms sql)。在下拉菜單中選擇「其他」時,會顯示一些隱藏文字。我開始構建html表單,然後確保它們發佈並正確保存。然後我添加了動態複選框,並對必填字段進行了js驗證,現在我需要爲報告做好準備。一切進展順利(有點複雜),但這篇報道讓我感到悲傷! – Antoni

回答

1

使用任一選項內#myForm創建元素ID /名稱的列表:

var orderedArrayId = []; 
$("#myForm *[id]").each(function(){ 
    orderedArrayId.push(this.id); 
}) 

var orderedArrayName = []; 
$("#myForm *[name]").each(function(){ 
    orderedArrayName.push(this.name); 
}) 

而不是使用.push(this.id)的,你也可以使用.push(this),如果你想獲得DOM元素的列表。

運行此代碼後,你可以通過所有元素的循環:

$.each(orderedArrayId, function(index, element){ 
    //element holds the ID of the element 
    // (or a reference to the DOM element, if you've used `.push(this)` instead 
    //  of `.push(this.id)`) 
    //Do something 
}); 
+0

這工作正常。有點。我可能應該多解釋一下,但並不認爲這是必要的。我有1個主頁面(main.asp),裏面是表單標籤名稱/ id = frmMain。在下面我做一些經典的asp意粉邏輯,然後包含適當的html/asp表單。我不認爲這些包含文件中的html對象被你的腳本抓住了,因爲我只看到那些包含這些文件的html對象在frmMain內但不在包含內。 任何提示? – Antoni

+0

那麼,你有多種形式?遍歷每個表單。 –