0
var round1 = output.parentNode.parentNode.parentNode.getElementsByTagName('a')[0].innerHTML


Internet Explorer 7 では、コードが 9 ff で明確に機能し、提案があればクロムで処理すると、「プロパティ 'innerHTML' の値を取得できません: オブジェクトが null または未定義です」というエラーが表示されます。

4

2 に答える 2

2

これをしないでください。つまり、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 || "";
于 2011-05-30T08:19:32.390 に答える
0

「a」タグがないように見えるoutput.parentNode.parentNode.parentNodeので、getElementsByTagName('a')[0]戻りますnull;)

于 2011-05-30T08:08:38.533 に答える