有一个动态生成的表单,怎样用js通过点击单选框的点击事件获取到那一行的数据
时间: 2024-02-19 14:04:14 浏览: 32
假设你的动态生成表单中每一行都是一个表格<tr>,每一行中有一个单选框<input type="radio">作为选择器,以下是一种实现方式:
1. 给每一个单选框添加一个点击事件,当用户点击单选框时触发事件。
例如,给单选框添加一个名为"selectRow"的class,并且使用addEventListener()添加事件监听器:
```
var radioButtons = document.querySelectorAll('.selectRow'); // 获取所有单选框
for (var i = 0; i < radioButtons.length; i++) {
radioButtons[i].addEventListener('click', function() {
// 在这里编写获取数据的代码
});
}
```
2. 当用户点击单选框时,获取该单选框所在的表格行<tr>元素。
例如,可以使用parentNode属性获取单选框所在的表格单元格<td>,再使用parentNode再次获取表格行<tr>:
```
var selectedRow = this.parentNode.parentNode;
```
3. 获取该表格行中的数据,并且执行需要的操作。
例如,可以使用querySelector()方法获取该表格行中需要的数据,例如表格中第二列的数据,然后将数据显示在页面上:
```
var data = selectedRow.querySelector(':nth-child(2)').textContent;
document.querySelector('#result').innerHTML = '你选择的数据是:' + data;
```
完整代码:
```
var radioButtons = document.querySelectorAll('.selectRow'); // 获取所有单选框
for (var i = 0; i < radioButtons.length; i++) {
radioButtons[i].addEventListener('click', function() {
var selectedRow = this.parentNode.parentNode; // 获取表格行
var data = selectedRow.querySelector(':nth-child(2)').textContent; // 获取第二列数据
document.querySelector('#result').innerHTML = '你选择的数据是:' + data;
});
}
```
其中,#result是用于显示结果的元素id,你可以根据需要修改。