2014-10-27 16 views
-1

我有一個HTML表單,我想將每個輸入元素的名稱屬性記錄到控制檯。將每個輸入元素的名稱屬性記錄到控制檯

我試過以下,但它只是返回某種(jquery)對象與「東西」臃腫。

$('input').each(function() { 
    console.log($(this).attr('name')); 
}); 
+0

它應該返回所有輸入節點的字符串的屬性名稱,請提供示例以複製您的問題。僅供參考,'this.name'將起作用,'$(':input')'將針對所有表單控件。順便說一句,它會更好,你發佈'它只是返回某種(jquery)對象,這是與「東西」臃腫'? – 2014-10-27 18:18:48

+0

沒有'console.log($(this).attr('name')。value)'? – 2014-10-27 18:21:52

+0

我假設你在控制檯中運行這一切。你確定你沒有看着$('input')''''''行的輸出嗎? – epascarello 2014-10-27 18:21:53

回答

1

您發佈的函數實際上將返回所有具有屬性「name」設置的輸入的所有值。這樣做之後,它將返回與您的選擇器'input'匹配的整個元素數組,這可能就是您稱之爲'對象臃腫的對象'的東西。

+0

那麼,什麼會返回名稱屬性的值?我已經用一個正則表達式完成了這個任務,但是由於這看起來像一個簡單的任務,所以我想知道腳本爲什麼會這樣工作,而不是按照它的設計方式工作。 – user1271930 2014-10-28 07:57:31

+0

您可以使用'map' JavaScript本地函數,其代碼與您發佈的代碼完全相同,只需使用'map'替換'each'這個單詞即可。 jquery這樣做提供方法chaning的原因,所有jquery函數都會返回一個jquery集合,以便您可以將函數鏈接到它們上。 ($'''')。addClass('wut')。removeClass('fud');' – frankies 2014-10-28 10:39:12

-2

試試這個伴侶。

var i, 
    input = $('input'); 


for (i = 0; i < input.length; i += 1) { 
    console.log(input.eq(i).attr('name')); 
} 

for循環更加快速並且可靠。

0

我希望這可以幫助你.. 這可以捕獲提交的每一個表格,它會記錄所有提交的值在表格中... 確保你在部署你的網站之前刪除它。對於安全問題....

$(form).on("submit",function(e){ 
     e.preventDefault(); 
     console.log("FORM:"+$(this).serialize()); 

    });