[英]Javascript issue in Internet Explorer
我编写了一个函数,可以搜索多个表以查找设备和地图。 一旦找到正确的单元格,它就会将innerHTML返回到页面顶部的div。
该功能在Firefox中完美运行,但它无法在Internet Explorer中运行。 该函数仍在IE中运行,但它没有找到它正在寻找的表中的内容。
这是功能:
// Function for searching tables for specific map/device combination.
function findMap(map, device)
{
var flag = false; // to check if the map has been found yet
// Add <strong> tags to map string so it is easier to search for
var mapstring = "<strong>" + map;
// create array of tables
var tables = document.getElementsByTagName('table');
for (var t = 2; t < tables.length; t++)
{
// create array of rows
var tablerows = tables[t].getElementsByTagName("tr");
for (var r = 2; r < tablerows.length; r++)
{
currentRow = tablerows[r];
// Check if current row contains map name
if (currentRow.innerHTML.match(mapstring))
{
var tablecells = currentRow.getElementsByTagName("td");
for (var c = 1; c < tablecells.length; c++)
{
currentCell = tablecells[c];
// Check if current cell contains device name
if (currentCell.innerHTML.match(device))
{
document.getElementById("boxy2").innerHTML = currentCell.innerHTML;
flag = true;
}
if (flag == true) return;
}
if (flag == true) return;
// search for x20 if 920 was not found etc
if (device == "910")
device = "x10";
else if (device == "920")
device = "x20";
else if (device == "930")
device = "x30";
else if (device == "940")
device = "x40";
else if (device == "950")
device = "x50";
// search cells again
for (var c = 1; c < tablecells.length; c++)
{
currentCell = tablecells[c];
if (currentCell.innerHTML.match(device))
{
document.getElementById("boxy2").innerHTML = currentCell.innerHTML;
flag = true;
}
if (flag == true) return;
}
if (flag == true) return;
}
if (flag == true) return; else { document.getElementById("boxy2").innerHTML="Map not available on this device."; }
}
}
}
对此问题的任何帮助将不胜感激。
谢谢。
我认为问题可能在于这一行:
var mapstring = "<strong>" + map;
我相信IE以大写形式报告标签名称,因此该行将失败:
if (currentRow.innerHTML.match(mapstring))
尝试使其不区分大小写:
var map_regex = new RegExp( mapstring,'i');
if (currentRow.innerHTML.match(map_regex))
(有点偏离主题,但似乎你忘了用var
声明一些变量,除非它们在你的代码中的其他地方。只是想我会提到它。)
你应该尝试更换tables[t].getElementsByTagName("tr")
由tables[t].rows
和currentRow.getElementsByTagName("td")
的currentRow.cells
。 如果您想稍后扩展脚本,为每个表分配一个ID可能更安全,然后通过getElementById
而不是getElementsByTagName
获取它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.