Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取并传递具有class=”的行的字段;名称“;在下面的html中?_Javascript_Html_Css - Fatal编程技术网

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>