gpt4 book ai didi

javascript - 如何使用 javascript 获取 html 表格单元格的内容 javascript 根据复选框

转载 作者:行者123 更新时间:2023-12-03 03:13:53 24 4
gpt4 key购买 nike

我有一个 html 格式的复选框数组,表中的一些数据如下

<table border=1 id='products'>
<tr><td>item id</td><td>item Name</td><td>item Price</td></tr>

<tr><td><input type='checkbox' id='p[]' name='prices[]' onClick='getPrice()'></td><td>Rice</td><td>300</td></tr>
<tr><td><input type='checkbox' id='p[]' name='prices[]' onClick='getPrice()'></td><td>Sugar</td><td>200</td></tr>
<tr><td><input type='checkbox' id='p[]' name='prices[]' onClick='getPrice()'></td><td>Tea</td><td>100</td></tr>
</table>

如何获取选中复选框的表格同一行中第三个单元格的内容?我在 javascript getPrice() 中创建了一个函数,但我不知道应该在 if 语句中写什么

<script>

function getPrice()
{
if (document.getElementById('p[]').checked)
{

} else {

}
}
</script>

最佳答案

首先,我建议在 onClick 属性上使用 addEventListener - 这将为我们提供一个可用于定位的事件不查询选择器的元素。

我还建议存储此数据并以不同于获取 HTML 标记内容的方式访问它 - data attributes是一个得到良好支持的标准。

我也冒昧地整理了表格标记,因此它具有语义上正确的标题和正文:

<table border=1 id='products'>
<thead>
<tr>
<th>item id</th>
<th>item Name</th>
<th>item Price</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type='checkbox' data-product='rice' data-price='300'></td>
<td>Rice</td>
<td>300</td>
</tr>
<tr>
<td><input type='checkbox' data-product='sugar' data-price='200'></td>
<td>Sugar</td>
<td>200</td>
</tr>
<tr>
<td><input type='checkbox' data-product='tea' data-price='100'></td>
<td>Tea</td>
<td>100</td>
</tr>
</tbody>
</table>

有了这个,我们可以重写 JS 来为每个输入添加一个事件监听器:

let inputs = document.querySelectorAll('input[type="checkbox"]')

for (let input of inputs) {
input.addEventListener('click', (event) => {
const product = event.target.dataset.product
const price = event.target.dataset.price
})
}

document.querySelectorAll 返回与页面上的选择器匹配的所有元素的数组。

然后我们可以迭代这个数组,对每个输入执行相同的操作 - 在本例中,应用一个事件监听器。

此事件监听器将用于“点击”事件,第二个参数是触发事件时将运行的函数。

第二个函数的参数是event,其中包含有关事件的所有信息。我们可以使用 event.target 获取被点击的元素,然后使用 event.target.dataset 获取该 HTML 元素的所有数据属性。

关于javascript - 如何使用 javascript 获取 html 表格单元格的内容 javascript 根据复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46846795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com