Javascript 无法使用jQuery提取值

Javascript 无法使用jQuery提取值,javascript,jquery,Javascript,Jquery,我有一个函数来计算当三个输入框中的一个发生变化时,然后显示答案。当发生变化时,我能够触发函数,但我无法从每个输入中获取值。下面是html和js代码段 HTML: <div> <table> <tr> <th></th> <th>Base</th>

我有一个函数来计算当三个输入框中的一个发生变化时,然后显示答案。当发生变化时,我能够触发函数,但我无法从每个输入中获取值。下面是html和js代码段

HTML:
    <div>
        <table>
                <tr>
                    <th></th>
                    <th>Base</th>
                    <th class="gen-specific g3 g4 g5 g6">IVs</th>
                    <th class="gen-specific g3 g4 g5 g6">EVs</th>
                    <th></th>
                    <th></th>
                </tr>
                <tr class="hp" onchange="hp_calculator()">
                    <td>
                        <label>HP</label>
                    </td>
                    <td>
                        <input class="base" value="100" />
                    </td>
                    <td class="gen-specific g3 g4 g5 g6">
                        <input class="ivs calc-trigger" value="31" />
                    </td>
                    <td class="gen-specific g3 g4 g5 g6">
                        <input class="evs calc-trigger" type="number" min="0" max="252" step="4" value="0" />
                    </td>
                    <td><span class="total">341</span>
                    </td>
                    <td></td>
                </tr>
        </table>
    </div>

首先,这将是一个窗口,而不是元素。而是将元素传递到处理程序中,并使用参数

<tr class="hp" onchange="hp_calculator(this)">


将事件处理程序内联通常是不好的做法。相反,我建议您直接在JavaScript中附加它们,这样
this
将按照您的预期工作。下面是一个在jQuery()中执行此操作的示例:


首先,这将是一个窗口,而不是元素。而是将元素传递到处理程序中,并使用参数

<tr class="hp" onchange="hp_calculator(this)">


将事件处理程序内联通常是不好的做法。相反,我建议您直接在JavaScript中附加它们,这样
this
将按照您的预期工作。下面是一个在jQuery()中执行此操作的示例:


运行代码时,我在控制台中看到“expected expression,Get'*'”错误。运行代码时,我在控制台中看到“expected expression,Get'*'”错误。不过,我有多个类调用同一个函数。我只是觉得这是最好的办法。在这种情况下,最好的做法是什么?@chingy77如果您只需要一个元素来调用它,您可以使用类似于
id=“hp”
的东西,并将处理程序更改为
$('#hp')。更改(…)
。不过,我有多个类调用同一个函数。我只是觉得这是最好的办法。在这种情况下,最佳做法是什么?@chingy77如果您只需要一个元素来调用它,您可以使用类似于
id=“hp”
的内容,并将处理程序更改为
$('#hp')。更改(…)
function hp_calculator(ele) {  
    var hp = $(ele).find(".base").val()*$(ele).find(".ivs.calc-trigger").val()+$(ele).find(".evs.calc-trigger").val();

    $(ele).find(".total").text(hp);
}
$('.hp').change(function(){
    var hp = $(this).find(".base").val()*$(this).find(".ivs.calc-trigger").val()+$(this).find(".evs.calc-trigger").val();

    $(this).find(".total").text(hp);
});