作为this question的后续行动并基于the answer,我做了类似的事情:http://jsfiddle.net/9r79f/1/
HTML:
<table>
<tr>
<td></td>
<td>Title</td>
<td>Title1</td>
<td>Title2</td>
</tr>
<tr>
<td>A</td>
<td><input type="text" /></td>
<td><input type="text" /></td>
<td><input type="text" /></td>
</tr>
<tr>
<td>A1</td>
<td><input type="text" class="sub" data-parent="A"/></td>
<td><input type="text" class="sub" data-parent="A" /></td>
<td><input type="text" class="sub" data-parent="A" /></td>
</tr>
<tr>
<td>A2</td>
<td><input type="text" class="sub" data-parent="A"/></td>
<td><input type="text" class="sub" data-parent="A"/></td>
<td><input type="text" class="sub" data-parent="A" /></td>
</tr>
<tr>
<td>B</td>
<td><input type="text" /></td>
<td><input type="text" /></td>
<td><input type="text" /></td>
</tr>
<tr>
<td>B1</td>
<td><input type="text" class="sub" data-parent="B"/></td>
<td><input type="text" class="sub" data-parent="B" /></td>
<td><input type="text" class="sub" data-parent="B" /></td>
</tr>
<tr>
<td>B2</td>
<td><input type="text" class="sub" data-parent="B"/></td>
<td><input type="text" class="sub" data-parent="B"/></td>
<td><input type="text" class="sub" data-parent="B" /></td>
</tr>
</table>
jQuery的:
$('input[type=text]').on('blur', function() {
//alert($(this).val());
calcA($(this));
});
function calcA(param){
var finalresult = 0,
$sub = param,
$value = param.data('parent');
$.each($sub, function(i) {
var fiVal = parseFloat( $sub.eq(i).val() );
if (fiVal) {
finalresult += fiVal;
$value.val( finalresult );
}
});
}
如何使用A1
属性将A2
+ A
中第一行的值设置为data
的第一行输入而不重复代码?对B
等进行同样的操作?
答案 0 :(得分:1)
您可以执行以下任一操作来获取data-parent
属性:
var data_parent_value = $(param).attr('data-parent'); // A or undefined
在此JSFiddle中查看您的控制台:http://jsfiddle.net/9r79f/2/