多个父节点在Internet Explorer 7中不起作用

问题描述

|
var round1 = output.parentNode.parentNode.parentNode.getElementsByTagName(\'a\')[0].innerHTML
代码明显适用于9 ff并添加任何建议时,Internet Explorer 7给我错误“无法获取属性'innerHTML \'的值:对象为null或未定义”。     

解决方法

        只是不要这样做,即在不知道它是什么的情况下反复调用
parentNode
。 DOM看起来可能与您期望的有很大不同。这与不进行任何范围检查(仅为了方便)一样聪明。 请改用防御性和灵活的方法(或使用类似jQuery的框架进行繁重的工作)。
function closest(node,tagName) {
  var parent = node.parentNode;
  if (parent) {
    if (parent.tagName && parent.tagName.toUpperCase() === tagName.toUpperCase()) {
      return parent;
    }
    return closest(parent,tagName);
  }
}

var container = closest(node,\"table\");
var firstLink = container.getElementsByTagName(\'a\')[0];
var round1    = firstLink.innerHTML || \"\";
    ,        
output.parentNode.parentNode.parentNode
中似乎没有\“ a \”-Tag,因此
getElementsByTagName(\'a\')[0]
返回
null
;)