gpt4 book ai didi

javascript - 对象不支持 IE11 中的属性或方法 'getElementsById'

转载 作者:行者123 更新时间:2023-11-29 18:17:19 27 4
gpt4 key购买 nike

我正在尝试使用 java 脚本将 html 数据导出到 excel。有趣的是,当我使用 getElementsByTagName 而不是 getElementById 时它确实有效。但是,我需要查明 id 元素,因此“getElementById”是我需要的(我猜)。当我在 IE 中调试以下代码时,它会给我:

Object doesn't support property or method 'getElementsById'

这是我得到的:

HTML(仅供引用):

<body>
<table>
<tr>
<td>content 1</td>
<td>content 2</td>
<td id="R">content I need</td>
<td>some other content</td>
</tr>
</table>
</body>

和伴随的JS

<script type="text/javascript">
function write_to_excel()
{
str="";

var mytable = document.getElementById("R")[0];
var row_Count = mytable.rows.length;
var col_Count = mytable.getElementById("R")[0].getElementById("R").length;

var ExcelApp = new ActiveXObject("Excel.Application");
var ExcelSheet = new ActiveXObject("Excel.Sheet");
ExcelSheet.Application.Visible = true;

for(var i=0; i < row_Count ; i++)
{
for(var j=0; j < col_Count; j++)
{
str= mytable.getElementById("R")[i].getElementById("R")[j].innerHTML;
ExcelSheet.ActiveSheet.Cells(i+1,j+1).Value = str;
}
}
}
</script>

我有这种感觉 - 这虽然微不足道,但是......提前致谢!)

最佳答案

getElementById 方法返回单个 DOM 元素(如果您有多个具有相同 ID 的 HTML 元素,那么您的页面有错误但浏览器不会提示,因为 10 年前它是一种常见的很多人都会犯的错误)。因此声明:

document.getElementById("R")[0]

毫无意义。相反,您想要的是:

var myTD = document.getElementById("R");

如果您有这样的页面结构:

<table id='T'>
<tr>
<td>content 1</td>
<td>content 2</td>
<td>content I need</td>
<td>some other content</td>
</tr>
</table>

并且想要迭代每一行中的每一列,你可以这样做:

var mytable = document.getElementById("T");
var table_rows = mytable.getElementsByTagName('tr');
for (var row=0;row<table_rows.length;row++) {
var row_columns = table_rows[row].getElementsByTagName('td');
for (var col=0;col<row_columns.length;col++) {
var item = row_columns[col];
// process item here
}
}

有关如何导航 DOM 的更多信息,请参阅 HTMLElement 的文档:https://developer.mozilla.org/en/docs/Web/API/Element

DOM API 的完整文档:https://developer.mozilla.org/en/docs/DOM

您也可以在 MSDN 而不是 MDN 上查看 IE 特定内容的相关文档,但我更喜欢 MDN,因为它记录了 API 的兼容性级别(其他浏览器实现的功能)。

关于javascript - 对象不支持 IE11 中的属性或方法 'getElementsById',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21942863/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com