如何在jQuery中计算值?
我有个小问题是小提琴: 现在,第一行输入的脚本工作,我必须为其他元素更改什么?我想我可以用这个,但我不知道怎么用。有人能帮我吗?你能帮我吗如何在jQuery中计算值?,jquery,element,attr,Jquery,Element,Attr,我有个小问题是小提琴: 现在,第一行输入的脚本工作,我必须为其他元素更改什么?我想我可以用这个,但我不知道怎么用。有人能帮我吗?你能帮我吗 $('body').on("change",'.val1, .val2',function (event) { var val1,val2; if($(this).is(".val1")){ val1=$(this); val2=val1.parent().children(".val2"); } else{ val2=$(this)
$('body').on("change",'.val1, .val2',function (event) {
var val1,val2;
if($(this).is(".val1")){
val1=$(this);
val2=val1.parent().children(".val2");
}
else{
val2=$(this);
val1=val2.parent().children(".val1");
}
var result = parseFloat(val1.val()) + parseFloat(val2.val());
result = isNaN(result) ? 0 : result;
$(this).parent().children('span').text(result.toFixed(2));
totalQuantity += result;
$('p').text(totalQuantity);
});
你能试试这个吗
$('form').on('change','.val1, .val2',function (event) {
var result = parseFloat($(this).next("span").text());
result = isNaN(result) ? 0 : result;
result = parseFloat($(this).val()) + result;
$(this).nextAll('span').first().text(result.toFixed(2));
totalQuantity += parseFloat($(this).val());
$('p').text(totalQuantity);
});
如果您使用totalQuantity变量仅用于此目的,那么您应该了解它并像这样使用它
totalQuantity = parseFloat($("#all").text());
totalQuantity = isNaN(totalQuantity) ? 0 : totalQuantity;
我已经开发了一个插件,以适应这种计算,尝试这个,如果它帮助你 可以在这里找到动态表单的示例用法 我将下面的代码上载到此地址:
瓦尔1
瓦尔2
这里是js部分
<script>
$form = $('#form').calx();
$('#addElement').on('click', function () {
var lastElem = $('.position').last();
var newElem = lastElem.clone();
var data = lastElem.data("id");
data = data + 1;
newElem.attr('data-id',data);
newElem.find('.val1').attr('id','A'+data).val('');
newElem.find('.val2').attr('id','B'+data).val('');
newElem.find('.val3').attr('id','C'+data).attr('data-formula','$A'+data+'+$B'+data);
$('#all').attr('data-formula','SUM($C1,$C'+data+')');
newElem.insertAfter(lastElem);
$form.calx('refresh');
});
</script>
$form=$('#form').calx();
$('#addElement')。在('click',函数(){
var lastElem=$('.position').last();
var newElem=lastElem.clone();
var数据=最新要素数据(“id”);
数据=数据+1;
newElem.attr('data-id',data);
newElem.find('.val1').attr('id','A'+data).val('');
newElem.find('.val2').attr('id','B'+data).val('');
newElem.find('.val3').attr('id','C'+数据).attr('data-formula','$A'+数据+'+$B'+数据);
$('#all').attr('data-formula','SUM($C1,$C'+data+'));
newElem.insertAfter(lastElem);
$form.calx('refresh');
});
您的类选择器当前仅拾取该类的第一个元素。您需要使用此
来查找正在更改的.val
。非常好,非常感谢您和rest的回复。我很高兴它对你有用。你能批准这个答案吗。谢谢这是我要找的剧本。伟大的我有一个问题,我编译到我的表格,但这只是第一行的工作。感谢您的回复。您在core.js中遗漏了一些内容,在主html中键入$('#faktura').calx();,但是在core.js中键入$('#form#faktura').calx();,它应该引用相同的表单,只需替换$form=$(“#form#faktura”).calx();为$form=$(“#faktura”);在第18行,它应该可以工作感谢我更改了答案,但没有结果我只是试图在本地重现问题,请尝试使用更新您的calx脚本
<form id="form">
<a id="addElement" class="addElement" href="#">Add element</a>
<div class="position" data-id="1">
<label for="title">val1</label>
<input type="text" name="val1[]" class="val1" id="A1">
<label for="title">val2</label>
<input type="text" name="val1[]" class="val2" id="B1">
<span id="C1" class="val3" data-formula="$A1+$B1"></span>
</div>
<p id="all" data-formula="$C1"></p>
</form>
<script>
$form = $('#form').calx();
$('#addElement').on('click', function () {
var lastElem = $('.position').last();
var newElem = lastElem.clone();
var data = lastElem.data("id");
data = data + 1;
newElem.attr('data-id',data);
newElem.find('.val1').attr('id','A'+data).val('');
newElem.find('.val2').attr('id','B'+data).val('');
newElem.find('.val3').attr('id','C'+data).attr('data-formula','$A'+data+'+$B'+data);
$('#all').attr('data-formula','SUM($C1,$C'+data+')');
newElem.insertAfter(lastElem);
$form.calx('refresh');
});
</script>