Javascript Internet Explorer lastChild.id无法正常工作
对于chrome、firefox和safari,以下代码似乎可以工作,并且能够检索表中最后一个tr的idJavascript Internet Explorer lastChild.id无法正常工作,javascript,internet-explorer,dom,Javascript,Internet Explorer,Dom,对于chrome、firefox和safari,以下代码似乎可以工作,并且能够检索表中最后一个tr的id var table = document.getElementById( tableId ); var rowid = table.lastChild.lastChild.id; 目标是使用每个行id来跟踪它的行号。我正在使用javascript动态地添加和删除行。问题是,我需要为每一行指定一个唯一的标识符,以便可以删除行。如果假设有4行并且删除了第2行,则计数将为1、3、4。如果
var table = document.getElementById( tableId );
var rowid = table.lastChild.lastChild.id;
目标是使用每个行id来跟踪它的行号。我正在使用javascript动态地添加和删除行。问题是,我需要为每一行指定一个唯一的标识符,以便可以删除行。如果假设有4行并且删除了第2行,则计数将为1、3、4。如果添加了另一行,它不能是4,否则将有重复的4。正确的方法是对所有元素重新编号(但每行中有许多元素与其计数相关,因此几乎很难重新编号)
有没有更好的办法?或者IE javascript有一个简单的修复程序吗?试试这个:
var table = document.getElementById( tableId );
var trArr = table.getElementsByTagName('tr');
var tdArr = trArr[trArr.length - 1].getElementsByTagName('td');
var rowid = tdArr[tdArr.length - 1].id;
“getElementsByTagName”方法返回的类型是ArrayWhat,如果他使用该函数从任何类型的标记获取任何lastchild元素,不仅是@Garis:Then
foo.childNodes[foo.childNodes.length-1]
,而且要注意,在除IE以外的所有浏览器中,不重要的空格作为子节点计数。getElementsByTagName
返回的对象不是数组
,而是节点列表
,该数组类似于具有长度
属性的数组,其名称对应于从0到长度-1的所有数字。现在,jquery非常有名,而且易于使用。类似于:var rowid=$('#tableid>tr:last child>td:last child')。attr('id');或者var rowid=$(“#tableid>tr:last child>td:last child”).get(0.id;请参阅Internet Explorer 8.0.7中的内容,它工作正常。。。您使用的是什么版本的internet explorer?