Jquery,获取多维数组键的值

时间:2013-06-24 10:42:32

标签: jquery multidimensional-array onchange

我有一个html表单(我无法编辑),没有ID和名称属性,如下所示:

名称= “元数据[团队成员] [42] [名称]”

我需要做两件事。

  1. 检测元数据[团队成员]是否和更改或更新的实例。

  2. 如果是,则将INT保持在第二个数组级别。

  3. 这是我到目前为止所得到的:

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

    这甚至没有检测到正在改变的领域。 作为参考,这是成员姓名,电子邮件和状态的列表。所以其他领域将是: name =“metadata [team-member] [42] [email]等...但我不关心,我只需要INT。

3 个答案:

答案 0 :(得分:2)

这是因为您的选择器错误,在这种情况下name属性为metadata[team-member][42][name]。由于您使用的是attribute equals过滤器,因此会查找完整匹配

您可以更改选择器以使用starts with选择器,这将选择名称以metadata[team-member]开头的所有元素

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

获取处理程序内的int值

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

答案 1 :(得分:1)

使用正则表达式从名称中获取id:

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

答案 2 :(得分:1)

我勾画了一个小样本

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

  alert(123);

});
看看这个 http://jsbin.com/oyogec/1/