如何使用Javascript修改HTML(没有任何唯一属性)元素
我试图使用JS修改一个元素,但是这个元素没有任何像ID这样的唯一属性。而且这个元素所在的表没有唯一的类。此外,HTML页面有多个表和td元素 例如: 现有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>
<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或类。