javascript - 如何在以下 html 中获取并传递具有 class="name" 的行的字段?
问题描述
<tbody>
<tr>
<td>gibberish</td>
<td class="name" hidden>200398</td>
<td>iPhone X 64Gb Grey</td>
<td>$999.00</td>
<td>1</td>
<td>
<button onclick="fetchdata(parameter)">Fetch Details</button>
</td>
</tr>
</tbody>
在上面的 html 中,我希望函数 fetchdata(' parameter ') 包含 td 的文本内容,该文本内容具有名称类并且是隐藏的,作为参数。
或者
我需要一种方法来获取 td 的文本内容,该文本内容在我的 javascript 函数中具有名称类。IE
function fetchdata() {
const name = document.somethingThatGivesMeName()
}
注意:我可能需要多行来获取名称,所以我不能直接做document.queryselector('.name')
对不起,这可能很简单,但我无法弄清楚。
解决方案
单击按钮时,使用该方法在树中找到相对于按钮的第一行closest
。然后从行中选择具有类的元素name
并读取该元素的textContent
or innerText
。
const buttons = document.querySelectorAll('.js-fetch-details');
function fetchDetails(event) {
const row = event.target.closest('tr');
const name = row.querySelector('.name').textContent;
console.log(name);
}
buttons.forEach(button => button.addEventListener('click', fetchDetails));
<table>
<tbody>
<tr>
<td>gibberish</td>
<td class="name" hidden>200398</td>
<td>iPhone X 64Gb Grey</td>
<td>$999.00</td>
<td>1</td>
<td>
<button class="js-fetch-details">Fetch Details</button>
</td>
</tr>
</tbody>
</table>
推荐阅读
- apache - 带有自签名证书的 openssl 错误“验证错误:num=18:自签名证书”和“例程:ssl3_read_bytes:tlsv1 警报解码”
- javascript - 如何在 Vue3 中设置/删除 data() 值?
- swift - 如何在 Swift 的动态原型单元格中使用 UIPickerView 或 UIDatePicker 作为 UITextField 的 inputView
- javascript - 我如何处理 Jest 中的承诺?
- python - 在加载“cv2”二进制扩展时检测到递归
- python - 如何用beautifulsoup从scripts标签中抓取数据?
- python - 基于诗歌的 Dockerized streamlit 应用程序 - ModuleNotFoundError: No module named 'Lib'
- sql - 一组给定数字的组合尽可能接近另一个已知数字
- javascript - 如何在 HTML/CSS 网格中显示多个 p5.js 脚本
- python - 如何实现打印所有相似字符串的功能?