2013-06-24 112 views
0

我有一個HTML表格(I不能編輯),沒有ID和名稱屬性是這樣的值:Jquery的,得到多維數組鍵

名稱=「元數據[團隊成員] [42] [名稱]「

我需要做兩件事。

  1. 檢測元數據[團隊成員]是否被更改或更新。

  2. 如果是,則獲取保存在第二個數組級別的INT。

這裏是我到目前爲止有:

$('[name="metadata[team-member]"]').on('change', function() { 
    alert('woo'); 
}); 

而且甚至不檢測場被改​​變。 作爲參考,這是成員姓名,電子郵件和狀態的列表。所以其他領域將是: name =「元數據[團隊成員] [42] [電子郵件]等...但我不在乎,我只需要INT。

回答

2

這是因爲你的選擇是錯誤的,name屬性是在這種情況下metadata[team-member][42][name]。由於您使用attribute equals過濾器,它看起來完全匹配

你可能會改變選擇使用starts with選擇,這將filtler他的名字開始的所有元素與metadata[team-member]

$('[name^="metadata[team-member]"]') 

要獲取處理程序中的int值

var name = this.name; 
var intpart = 'metadata[team-member][42][name]'.match(/\[(\d+)\]/)[1]; 
+0

這勾勒出小樣本

$('input[name="test[test]"]').on('change', function(){ alert(123); }); 

看是我使用的解決方案。 。我會盡快更新我的問題,包括我的具體版本..非常感謝..! – Beertastic

1

使用正則表達式來從名稱獲取ID:

$('[name^="metadata[team-member]"]').on('change', function() { 
    var name = $(this).attr('name'); 
    var id = parseInt(name.match(/\d{2}/)[0]); 
}); 
+0

完美呢!我已將此書籤加入以備將來參考。 – Beertastic