我试图从this website创建一个IP地址和端口号数组。 但问题是我收到了错误
TypeError:table.rows [i] .cells [0] .getElementsByTagName(...)[0]未定义
这是我的代码:
var table = document.getElementsByClassName('DataGrid')[0];
var n = table.rows.length;
console.log(n);
var list="";
for(var i=1;i<n;i++){
//var ip = table.rows[i].cells[1].innerHTML;
var port = table.rows[i].cells[0].getElementsByTagName("a")[0].innerHTML; // error here
//list+="{"+ip+","+port+"}";
}
第一个单元格值模式如下所示。
<td><script type="text/javascript">IPDecode("")</script><a href="http://www.freeproxylists.net/1.179.183.85.html">1.179.183.85</a></td>
所以我认为我做得对。我在做一些愚蠢的错误吗?
注意:我调试并且已经发现有些行没有第二个单元格,但问题是我收到错误。我没有得到至少一个预期长度的输出。见图:
答案 0 :(得分:1)
此表的某些行包含添加内容,而不是遵循您尝试获取的行(单元格(a))结构。每当你得到get...By...
的结果时,你应该检查它是否为空,如果只是跳过continue
的循环。