如何用不带任何ID的Javascript替换列(表内)中的文本
下面的代码显示了一个呈现的HTML(来自编译的ASP.Net代码)。我将无法对其进行任何更改,包括添加新属性,如ID 我仍然可以用Javascript做一些事情,但是因为该列没有唯一的ID,所以我无法用其他文本替换下划线文本“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 计划是用其他文本替换第3列中每行的下划线。有没有办法用Javascript识别第3列 多谢各位如何用不带任何ID的Javascript替换列(表内)中的文本,javascript,html,replace,Javascript,Html,Replace,下面的代码显示了一个呈现的HTML(来自编译的ASP.Net代码)。我将无法对其进行任何更改,包括添加新属性,如ID 我仍然可以用Javascript做一些事情,但是因为该列没有唯一的ID,所以我无法用其他文本替换下划线文本“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 计划是用其他文本替换第3列中每行的下划线。有没有办法用Javascript识别第3列 多谢各位
<table width='100%'>
<tr>
<td align="left" valign="top" class='clsReadOnly'>Row 1
</td>
<td align="left" valign="top" class='clsReadOnly'>
abc
</td>
<td align="left" valign="top" class='clsReadOnly'>
__________________________
</td>
</tr>
<tr>
<td align="left" valign="top" class='clsReadOnly'>Row 2
</td>
<td align="left" valign="top" class='clsReadOnly'>
def
</td>
<td align="left" valign="top" class='clsReadOnly'>
__________________________
</td>
</tr>
<tr>
<td align="left" valign="top" class='clsReadOnly'>Row 3
</td>
<td align="left" valign="top" class='clsReadOnly'>
ghi
</td>
<td align="left" valign="top" class='clsReadOnly'>
__________________________
</td>
</tr>
</table>
一排
abc
__________________________
第2排
def
__________________________
第3排
ghi
__________________________
这取决于你想完成什么。如果您的桌子总是这样,您可以执行以下操作:
var cells = document.getElementsByClassName('clsReadOnly');
cells[2].innerHTML = "Row1 Column3";
cells[5].innerHTML = "Row2 Column3";
cells[8].innerHTML = "Row3 Column3";
如果不知道要从多少列开始,则必须执行以下操作:
var rows = document.getElementsByTagName('tr');
for (var i=0; i<rows.length; i++) {
var cells = rows[i].getElementsByTagName('td');
cells[2].innerHTML = 'Row'+(i+1)+' Column3';
}
var rows=document.getElementsByTagName('tr');
对于(var i=0;i,这取决于您试图实现的目标。如果您的表始终是这样的,您可以执行以下操作:
var cells = document.getElementsByClassName('clsReadOnly');
cells[2].innerHTML = "Row1 Column3";
cells[5].innerHTML = "Row2 Column3";
cells[8].innerHTML = "Row3 Column3";
如果不知道要从多少列开始,则必须执行以下操作:
var rows = document.getElementsByTagName('tr');
for (var i=0; i<rows.length; i++) {
var cells = rows[i].getElementsByTagName('td');
cells[2].innerHTML = 'Row'+(i+1)+' Column3';
}
var rows=document.getElementsByTagName('tr');
对于(var i=0;i,如果这是页面上的唯一表,则可以使用jQuery执行此操作:
$('table')
.children('tr')
.each(function() {
$(this).children('td:last').html('<p>A Paragraph of Text</p>');
});
$(“表”)
.儿童(tr)
.each(函数({
$(this.children('td:last').html(“一段文本””);
});
如果这是页面上唯一的表,您可以使用jQuery:
$('table')
.children('tr')
.each(function() {
$(this).children('td:last').html('<p>A Paragraph of Text</p>');
});
$(“表”)
.儿童(tr)
.each(函数({
$(this.children('td:last').html(“一段文本””);
});
GetElementsByCassName()是HTML5,目前在IE中不受支持。以下是不需要jQuery的解决方案的JSFIDLE
var myTable = document.getElements('td');
for(var i=0; i<myTable.length; i++){
if((i+1)%3 == 0)
console.log(myTable[i].innerHTML);
}
var myTable=document.getElements('td');
for(var i=0;igetElementsByClassName()是HTML5,目前在IE中不受支持
var myTable = document.getElements('td');
for(var i=0; i<myTable.length; i++){
if((i+1)%3 == 0)
console.log(myTable[i].innerHTML);
}
var myTable=document.getElements('td');
对于(var i=0;igetElementsByClassName()
在IE6、IE7或IE8中不受支持。getElementsByClassName()
在IE6、IE7或IE8中不受支持。您应该将该代码放在此处,而不是JSFIDLE.net,用于posterity.true。posterity和readability使代码维护变得容易。您应该尝试mootools,而不是jquary,用于posterity和readability。您应该将该代码放在此处,而不是JSFIDLE.net,用于posterity.true.posterity和readabilityy使代码维护变得容易。为了后代和可读性,您应该尝试mootools而不是jquary。与:$('table>tr>td:last').html('p>一段文本');@box9:您的代码是平滑的、可读的。但是,我的示例解析速度更快。使用像.children()这样的jQuery函数
过滤和遍历DOM比依赖选择器引擎为您进行更高效。与:$('table>tr>td:last').html('p>一段文本');@box9:您的代码平滑且可读。但是,我的示例解析速度更快。使用像.children()这样的jQuery函数
过滤和遍历DOM要比依靠选择器引擎为您进行更高效。