Javascript jQuery收集2个数据点,即使只分配了一个

Javascript jQuery收集2个数据点,即使只分配了一个,javascript,jquery,variables,Javascript,Jquery,Variables,关于jQuery中.data的快速问题:我的变量valone进入某个HTML中的下拉菜单,查看下拉菜单中的数据值,然后将其插入jQuery公式。但它似乎也从下拉列表中获取选项值,并以某种方式将其包含到数学中,即使我没有指定它这样做 var valone = $('#os0 option:selected').data('whatever'); 我在这个数据函数中遗漏了什么吗?还是我有一些不必要的额外的东西? 下面是完整的jQuery和HTML jQuery HTML 任何帮助或建议都将不胜感激

关于jQuery中.data的快速问题:我的变量valone进入某个HTML中的下拉菜单,查看下拉菜单中的数据值,然后将其插入jQuery公式。但它似乎也从下拉列表中获取选项值,并以某种方式将其包含到数学中,即使我没有指定它这样做

var valone = $('#os0 option:selected').data('whatever');
我在这个数据函数中遗漏了什么吗?还是我有一些不必要的额外的东西? 下面是完整的jQuery和HTML

jQuery

HTML


任何帮助或建议都将不胜感激

在回答你的问题时,你没有遗漏任何东西。数据存储一个东西,即为其设置的值,或者是元素属性中的硬编码值,或者是通过jquery设置的值。做valone*1有什么意义,为什么不只是valone?你把事情复杂化了。应该是

var total = valone * valtwo * valthree;


取决于你在计算什么。

在回答你的问题时,你没有遗漏任何东西。数据存储一个东西,即为其设置的值,或者是元素属性中的硬编码值,或者是通过jquery设置的值。做valone*1有什么意义,为什么不只是valone?你把事情复杂化了。应该是

var total = valone * valtwo * valthree;

取决于计算内容。

.data正在检索正确的值。此部件出现问题:

$('.calc').each(function(){
    if($(this).val() != '')
    {
        total += parseInt($(this).val());
    }
});
在这一点上计算的变量总数是您所期望的。每个元素再次迭代每个select元素,并将所选值添加到总数中。

。数据正在检索正确的值。此部件出现问题:

$('.calc').each(function(){
    if($(this).val() != '')
    {
        total += parseInt($(this).val());
    }
});

在这一点上计算的变量总数是您所期望的。每个元素都会再次迭代每个select元素,并将所选值添加到总数中。

*1会隐式地将这些值转换为整数。没错,但我仍然不明白为什么要运行代码,它最终会在同一个等式中包含选项值和数据,虽然我没有调用选项值…*1隐式地将这些值转换为整数。没错,但我仍然不明白为什么要运行代码,它最终在同一个等式中包含了选项值和数据,即使我没有调用选项值…它对我来说工作正常。这里有一个小提琴显示数据“whatever”只返回datawhater属性的值@亚伦:你对250,250,250的预期输出是什么?我在寻找数据,无论值是什么,都是valone的值,因为valtwo最终是3,valthree是2。因此,总数应计算为:5*3*2=30。但它最终在某处运行了250次,而我最终总共运行了269次…@Aaron:The$.calc.each。。。这一行将把250加回去。那可能是你的问题吗?太棒了,我甚至没想过,那可能是我的问题。我有脚本自动计算总每次一个选项被改变,虽然。。。是不是每行的$.calc.都让这种情况发生?我应该把它改成什么,以避免250返回到方程中,但仍然是自动计算的?它对我来说就像预期的那样工作。这里有一个小提琴显示数据“whatever”只返回datawhater属性的值@亚伦:你对250,250,250的预期输出是什么?我在寻找数据,无论值是什么,都是valone的值,因为valtwo最终是3,valthree是2。因此,总数应计算为:5*3*2=30。但它最终在某处运行了250次,而我最终总共运行了269次…@Aaron:The$.calc.each。。。这一行将把250加回去。那可能是你的问题吗?太棒了,我甚至没想过,那可能是我的问题。我有脚本自动计算总每次一个选项被改变,虽然。。。是不是每行的$.calc.都让这种情况发生?我应该将其更改为什么,以避免返回到等式中,但仍然自动计算?
$('.calc').each(function(){
    if($(this).val() != '')
    {
        total += parseInt($(this).val());
    }
});