Javascript 如何获取并传递具有class=”的行的字段;名称“;在下面的html中?
注意:我可能需要获得多行的名称,因此无法直接执行Javascript 如何获取并传递具有class=”的行的字段;名称“;在下面的html中?,javascript,html,css,Javascript,Html,Css,注意:我可能需要获得多行的名称,因此无法直接执行document.queryselector('.name') 抱歉,这可能很简单,但我不太明白。您只需要引号”: 函数获取数据(值){ console.log(值) } 胡言乱语 200398 iPhone X 64Gb灰色 $999.00 1. 获取详细信息 您可以使用document.getElementsByClassName('name') 这将获得类为name的所有元素。首先,获得class=“name”的所有元素,然后选择属性为“
document.queryselector('.name')
抱歉,这可能很简单,但我不太明白。您只需要引号
”
:
函数获取数据(值){
console.log(值)
}
胡言乱语
200398
iPhone X 64Gb灰色
$999.00
1.
获取详细信息
您可以使用document.getElementsByClassName('name')
这将获得类为
name
的所有元素。首先,获得class=“name”的所有元素,然后选择属性为“hidden”的元素(第一个)
无论如何,这是一种方法
函数fetchdata(){
const tds=document.getElementsByClassName(“名称”)
for(设i=0;i
胡言乱语
200398
iPhone X 64Gb灰色
$999.00
1.
获取详细信息
单击按钮时,使用最接近的方法查找树中相对于按钮的第一行。然后从行中选择类为name
的元素,并读取该元素的textContent
或innerText
const buttons=document.querySelectorAll('.js fetch details');
函数获取详细信息(事件){
const row=event.target.closest('tr');
const name=row.querySelector('.name').textContent;
console.log(名称);
}
buttons.forEach(button=>button.addEventListener('click',fetchDetails))代码>
胡言乱语
200398
iPhone X 64Gb灰色
$999.00
1.
获取详细信息
我会将侦听器放在
上
function fetchdata() {
const name = document.somethingThatGivesMeName()
}
更新
这也行
document.querySelector('tbody').addEventListener('click', (e) => {
// Clicking on the whole row
if (e.target.nodeName === 'TR') {
const name = e.target.querySelector('.name').textContent;
console.log(name);
}
// Clicking on the button
// Give the button a class
if (e.target.classList.contains('.somebuttonclass')) {
const name = e.target.parentNode.parentNode.querySelector('.name').textContent;
console.log(name);
}
});
如果使用document.getElementsByClassName,您将获得所需的内容。
但是,如果出现该类名的多个实例,则需要遍历这些类并获取它们的值。
下面应该可以解决你的问题
document.querySelector('tbody').addEventListener('click', (e) => {
// Clicking on the whole row
if (e.target.nodeName === 'TR') {
const name = e.target.querySelector('.name').textContent;
console.log(name);
}
// Clicking on the button
// Give the button a class
if (e.target.classList.contains('.somebuttonclass')) {
const name = e.target.closest('tr').querySelector('.name').textContent;
console.log(name);
}
});
函数fetchdata(){
var data=document.getElementsByClassName(“数据”);
var t=数据长度;
对于(i=0;i
如果可能有多个名称为的行,您如何知道要获取其中的哪一行?我想使用parentElement属性访问它,但在这里如何使用它?我最初误解了这个问题,我认为现在这解决了问题
document.querySelector('tbody').addEventListener('click', (e) => {
// Clicking on the whole row
if (e.target.nodeName === 'TR') {
const name = e.target.querySelector('.name').textContent;
console.log(name);
}
// Clicking on the button
// Give the button a class
if (e.target.classList.contains('.somebuttonclass')) {
const name = e.target.closest('tr').querySelector('.name').textContent;
console.log(name);
}
});
<html>
<head>
<script>
function fetchdata(){
var data = document.getElementsByClassName("data");
var t = data.length;
for(i = 0; i< t; i++){
var content = data[i].innerHTML;
alert (content);
}
}
</script>
<body>
<table>
<tbody>
<tr>
<td>gibberish</td>
<td class="data" hidden>200398</td>
<td>iPhone X 64Gb Grey</td>
<td>$999.00</td>
<td>1</td>
<td>
<button onclick="fetchdata()">Fetch Details</button>
</td>
</tr>
</tbody>
</table>
</body>
</html>