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