我有一堆像这样的输入字段:
<input type="text" class="amount" data-type="amount[aquisition][000014]" value="16.20">
<input type="text" class="amount" data-type="amount[aquisition][000014]" value="11.60">
<input type="text" class="amount" data-type="amount[aquisition][000345]" value="9.10">
<input type="text" class="amount" data-type="amount[aquisition][000345]" value="5.40">
我想将[aquisition]元素的值和以下未知的数字相加,但在同一文档中有多个。
尝试与each();
一起工作但是当它超过一个括号时它不会工作。我还能够修改HTML输入字段的生成方式。
$('[data-type="amount[aquisition]"]').each(function(){
console.log($(this));
});
我希望上面的内容遍历所有元素[amount]并为每个唯一的第二组括号返回数组。但没有任何反应,甚至没有错误。
有什么想法吗?
THX!
答案 0 :(得分:1)
您应该使用部分属性选择器:
// match data-type values beginning with "amount[aquisition]"
$('[data-type^="amount[aquisition]"]').each(function(){ ... });
// match data-type values containing "amount[aquisition]"
$('[data-type*="amount[aquisition]"]').each(function(){ ... });
http://jsfiddle.net/isherwood/76tvB/1
然后,您使用一些字符串解析来从第二组括号中获取值。
http://jsfiddle.net/isherwood/76tvB/4
var myNums = [];
// match data-type values beginning with "amount[aquisition]"
$('[data-type^="amount[aquisition]"]').each(function () {
$(this).css('color', 'red');
var myNum = $(this).attr('data-type');
myNum = myNum.replace('amount[aquisition][', '').replace(']', '');
myNums.push(myNum);
$('#dropbox').text( myNums );
});
您必须对阵列进行检查以过滤重复项。