【发布时间】:2020-07-23 03:37:13
【问题描述】:
我不确定如何使用事件目标closest([name="..."]),据我所知closest() 应该在我更改输入字段中的值后获取元素以进行计算,但我得到的元素是null
function calculate(e) {
if (e.target.name == 'qty') {
var elemPrice = e.target.closest('[name="price"]') //***
var elemAmount = e.target.closest('[name="amount"]') //***
console.log(elemPrice)
console.log(elemAmount)
elemAmount.value = elemPrice.value * e.target.value
}
}
document.addEventListener('DOMContentLoaded',function(){
document.getElementsByName('qty').forEach(t => { t.addEventListener('change',calculate) })
})
<table>
<tbody>
<tr class="uk-hidden">
<td>1</td>
<td><input name="price"></td>
<td><input name="qty"></td>
<td><input name="amount"></td>
</tr>
<tr class="uk-hidden">
<td>2</td>
<td><input name="price"></td>
<td><input name="qty"></td>
<td><input name="amount"></td>
</tr>
<tr class="uk-hidden">
<td>3</td>
<td><input name="price"></td>
<td><input name="qty"></td>
<td><input name="amount"></td>
</tr>
</tbody>
</table>
我试过了
...
var elemPrice = e.target.parentElement.previousElementSibling.lastElementChild //***
var elemAmount = e.target.parentElement.nextElementSibling.lastElementChild //***
...
但我想像closest 那样做有没有办法做到这一点?
无论如何提前谢谢你
【问题讨论】:
标签: javascript html google-apps-script