Javascript 编辑没有类或ID的文本

Javascript 编辑没有类或ID的文本,javascript,html,css,client-side-scripting,Javascript,Html,Css,Client Side Scripting,我需要在客户端设置某些文本行的格式,但无法修改实际代码。HTML是动态生成的,但我可以将带有JS和CSS的代码片段放在顶部,以对其进行样式化。以下是HTML: <td role="gridcell" class="ms-cellstyle ms-vb2">Daily Reports</td> <td role="gridcell" class="ms-cellstyle ms-vb2">Construction</td> <td role="

我需要在客户端设置某些文本行的格式,但无法修改实际代码。HTML是动态生成的,但我可以将带有JS和CSS的代码片段放在顶部,以对其进行样式化。以下是HTML:

<td role="gridcell" class="ms-cellstyle ms-vb2">Daily Reports</td>
<td role="gridcell" class="ms-cellstyle ms-vb2">Construction</td>
<td role="gridcell" class="ms-cellstyle ms-vb2">Administration</td>
每日报告
建设
管理
既然所有Td都有相同的角色和类别,但我只需要将“管理”一词改为“类别管理”,我该如何做到这一点?我尝试了下面的脚本,但没有成功

<script>
document.getElementByName("Administration").innerHTML = "Category - Administration";
</script>

document.getElementByName(“管理”).innerHTML=“类别-管理”;

非常感谢您的帮助

如果它总是第三个
td
你可以使用纯css
td:eq(3){/*style here*/}
否则你可以使用javascript,还有一个有用的jQuery函数-

使用
文档。qurySelectorAll
检查文本内容并替换匹配的文本

document.querySelectorAll('td').forEach(函数(项){
if(item.textContent.trim()=“管理”){
item.textContent='Some other text'
}
})

日报
建设
管理

您可以通过比较单元格的文本内容来完成。当然,这很容易出错,如果文本稍有不同,它就会中断。但是,如果没有其他解决方法,下面的示例应该可以帮助您

document.querySelectorAll('.ms cellstyle').forEach(cell=>{
如果(cell.textContent=='Administration'){
cell.textContent='Category-Administration';
}
});

日报
建设
管理

您可以使用以下解决方案在没有
类或
id的情况下编辑文本:

$('.ms-cellstyle').each(function() {
   if ($(this).text()=="Administration")
   $(this).text("Category - Administration");
});

首先确保此
位于
内。使用
.querySelectorAll
获取文档中的所有元素,然后使用.forEach()方法为数组中的每个元素调用一次提供的函数

document.querySelectorAll('.ms-cellstyle').forEach(td => {(td.textContent == 'Administration') ? td.textContent = 'Category - Administration': ;});

参考:

像这样的td总是只有三个吗?用gridcell类循环td-然后在innerHTML上设置if station并只更改一行,如果单元格总是在HTML表中的同一位置,您可以通过第n个子项选择它。如果您共享了足够多的html表,并且该单元格始终位于同一位置,那么我可以通过一个基于CSS而不需要js的工作演示来回答这个问题。看起来像是标题…你也可以发现这篇文章很有帮助,比如IE不支持节点上的forEach,这和纯js的方法差不多