Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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修改HTML(没有任何唯一属性)元素_Javascript_Html - Fatal编程技术网

如何使用Javascript修改HTML(没有任何唯一属性)元素

如何使用Javascript修改HTML(没有任何唯一属性)元素,javascript,html,Javascript,Html,我试图使用JS修改一个元素,但是这个元素没有任何像ID这样的唯一属性。而且这个元素所在的表没有唯一的类。此外,HTML页面有多个表和td元素 例如: 现有HTML: <table border="1"> <tbody> <tr> <td>Id</td> <td>Name</td> </tr> <tr> <td>12334567</td>

我试图使用JS修改一个元素,但是这个元素没有任何像ID这样的唯一属性。而且这个元素所在的表没有唯一的类。此外,HTML页面有多个表和td元素

例如:

现有HTML:

<table border="1">
 <tbody>
  <tr>
   <td>Id</td>
   <td>Name</td>
  </tr>
  <tr>
   <td>12334567</td>
   <td>BirthName</td>
  </tr>
 </tbody>
</table>
我正在尝试将包含值BirthName的单元格修改为BirthName sidhart

大概是这样的:

<table border="1">
 <tbody>
  <tr>
   <td>Id</td>
   <td>Name</td>
  </tr>
  <tr>
   <td>12334567</td>
   <td>BirthName (Sidharth)</td>
  </tr>
 </tbody>
</table>

你可以通过使用贝娄冷语找到所有有出生名字的人

const allTds = document.querySelectorAll('td')

// Find the td element that contains the text "BirthName"
const birthDateTd = Array.from(allTds).filter(td=>td.textContent==='BirthName')

之后,您可以根据需要将其作为目标。

如果文本是唯一的,则可以使用如下所示的Xpath并对其进行更改

var td=document.evaluate//td[containstext,'BirthName',document,null,XPathResult.ANY_类型,null; var thisTd=td.iterateNext; thisTd.innerHTML=出生名Sidhart; 身份证件 名称 12334567 出生名
您可以检查所有td的文本并更改匹配出生名的位置

let element = document.querySelectorAll('td');
for(let i = 0; i<element.length; i++){
    if(element[i].innerText == 'BirthName'){
    element[i].innerText += '(Sidharth)';
    }
}

多个表中是否存在BirthName?BirthName是否唯一您可以使用Xpath并对其进行更改检查答案除了检查textContent外,还可以检查innerText。如果您想在多个实例上应用更改,可以将.findtd.textContent==='BirthName'替换为.filtertd=>td.textContent=='BirthName'。这将返回一个DOM元素数组。我打字很慢。在我写这篇文章时,Gaurav已经更新了他的帖子:我不这么认为,但根据问题,他们并没有任何ID或类。