Javascript .innerHTML不起作用,还是我用错了?
如果我理解正确,.innerHTML应该覆盖某个div或span中的任何内容。 例如:Javascript .innerHTML不起作用,还是我用错了?,javascript,Javascript,如果我理解正确,.innerHTML应该覆盖某个div或span中的任何内容。 例如: <table width="90%" border="0" align="center" cellpadding="5" cellspacing="0"> <tr> <td colspan="2" align="left">Via Email:</td> <td width="1070" align="right"></t
<table width="90%" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td colspan="2" align="left">Via Email:</td>
<td width="1070" align="right"></td>
</tr>
<script>
$('#addEmail').click(function() {
document.getElementById('emailList').innerHTML = "12345";
});
</script>
<span id="emailList">
<tr>
<td width="27" align="left"><img src="icon_mail.png" width="24" height="24"></td>
<td width="228" align="left">123obama@whitehouse.com</td>
<td align="right"><a href="#" id="dialog_link" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-close"></span>remove</a></td>
</tr>
</span>
<tr>
<td colspan="3" align="left"><br>
<input name="input4" type="text" value="vova@kremlin.ru" size="20">
<a href="#" id="addEmail" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-mail-closed"></span>Add Email</a></td>
</tr>
</table>
因此,点击addEmail按钮,里面的所有东西都将被移除,并被12345替换
但实际上,它对这个跨度没有任何作用,只是在脚本所在的地方打印出12345
有什么想法可能是错误的吗?HTML是-你不能用一个字母来包装。浏览器正在对代码执行错误恢复,并生成一个与您期望的不同的DOM。当您试图编辑跨度的内容时,跨度可能不是您认为的位置
…您也不能在表行之间放置脚本
…并且您正在尝试在文档中存在链接之前将事件处理程序绑定到链接。您需要移动脚本,使其显示在链接之后,或者将执行此工作的代码移动到在链接存在后运行的事件处理程序中,例如就绪事件。HTML是-您不能在中包装。浏览器正在对代码执行错误恢复,并生成一个与您期望的不同的DOM。当您试图编辑跨度的内容时,跨度可能不是您认为的位置
…您也不能在表行之间放置脚本
…并且您正在尝试在文档中存在链接之前将事件处理程序绑定到链接。您要么需要移动脚本,使其显示在链接之后,要么将执行此工作的代码移动到在链接存在后运行的事件处理程序中,例如就绪事件。实际上,是您的跨度出错了。一个跨度不能。。。span我知道,我知道表中的行,所以在某些浏览器上,它会在行之间或表外的某个位置打开和关闭,所以当您覆盖它的html时,它会在其他地方结束
您应该改为命名tr并覆盖它的html,这应该会起作用。实际上是您的span出错了。一个跨度不能。。。span我知道,我知道表中的行,所以在某些浏览器上,它会在行之间或表外的某个位置打开和关闭,所以当您覆盖它的html时,它会在其他地方结束
你应该改为命名tr并覆盖它的html,这应该是可行的。你不能把一个这样的名字放在一个里面。无论如何,如果您使用的是jQuery,您可能应该在.innerHTML周围使用它的API
$('#emailList').html("hello world");
这将为你做一些重要的清理工作。这并不是绝对必需的,但除非你确实知道自己在做什么,否则这可能是一个更安全的选择。你不能把这样的东西放进去。无论如何,如果您使用的是jQuery,您可能应该在.innerHTML周围使用它的API
$('#emailList').html("hello world");
这将为你做一些重要的清理工作。这不是绝对必需的,但除非你确实知道自己在做什么,否则这可能是一个更安全的选择。你是在一个跨度中包装一个。这将导致不可预测的结果。尤其是当您删除表行时。您在一个范围内包装了一个。这将导致不可预测的结果。尤其是当您删除表格行时。谢谢,在这种情况下,放置似乎很有效!但是,如果我想添加多行,我应该如何包装它呢?就我个人而言,我根本不会使用innerHtml,而是命名表,并使用jQuery的appendTo和insert方法添加额外的行。谢谢,在这种情况下,Puting似乎很有效!但是,如果我想添加多行,我应该如何包装它呢?就我个人而言,我根本不会使用innerHtml,而是命名表,并使用jQuery的appendTo和insert方法添加额外的行。谢谢,在这种情况下,Puting似乎很有效!然而,如果我想添加更多的行,我应该如何包装它呢?当您试图用标记包装表行时,您不能指望事情会顺利进行;这绝对是无效的标记。如果你需要分组行,你可以使用标签,不过要为IE中可能出现的奇怪情况做好准备。谢谢,在这种情况下,放置似乎很有效!然而,如果我想添加更多的行,我应该如何包装它呢?当您试图用标记包装表行时,您不能指望事情会顺利进行;这绝对是无效的标记。如果你需要对行进行分组,你可以使用标记,不过要为IE中可能出现的奇怪情况做好准备。这其实是可以预见的,标准对此非常明确,只是不是他想象的那样:@Blindy:我只是说,根据我的经验,不同的浏览器处理这种无效性的方式不同。这实际上是可以预见的,这个标准非常明确,只是不像他想象的那样:@Blindy:我的意思是,根据我的经验,不同的浏览器处理这种无效性的方式不同。