在我的表中,我有一个[对象HTMLInputElement],我想改变这个元素的id。但这不起作用:
`function BindFunctions(){
$('table[id*="tbl_main"]').tablesorter();
$('table[id*="tbl_main"]').bind("sortEnd",function() {
var table = document.getElementById('<%=tbl_main.ClientID%>');
for (var i = 0, row; row = table.rows[i]; i++) {
var e = row.cells[0].firstChild;
e.id= '5';
}
});
};`
任何人都可以帮助我吗?
答案 0 :(得分:0)
如果没有看到相关标记,那么非常很难提供帮助。但我的猜测是,单元格的第一个子节点是文本节点而不是元素。 DOM firstChild
属性为您提供了第一个节点,它可能是也可能不是元素。例如,如果您的表行如下所示:
<tr><td>Foo</td></tr>
...然后row.cells[0].firstChild
是一个包含文字"Foo"
的文字节点。
另请注意,引用的代码会创建无效的DOM结构:不能在文档中的多个元素上使用相同的id
。您试图将id
值"5"
提供给每行的第一个子元素。 id
值必须是唯一的。
此外,看起来你正在使用jQuery(虽然你没有标记问题jquery
)。我只想提一下,虽然"5"
是HTML的有效id
值,但不是CSS的有效id
值,并且因为jQuery使用CSS样式选择器,使用jQuery的无效CSS id
值是有问题的。