代码之家  ›  专栏  ›  技术社区  ›  nife552

JavaScript Chrome似乎不支持通过setAttributeNode添加id

  •  3
  • nife552  · 技术社区  · 12 年前

    所以我正在为我的网站进行JavaScript搜索,它已经运行了几天,当时我意识到它与Chrome不兼容,所以我检查了其他一些浏览器,发现它在Firefox和IE9中有效,但在Chrome或Safari中无效。

    几个小时以来,我一直在Chrome和Firefox中并行地调试调试器,但我一辈子都弄不清问题出在哪里。它总是给我一个错误。我确切地知道这个错误的含义,以及它为什么会给我这个错误,但我无法弄清楚是什么原因造成的。

    这是错误:未捕获的类型错误:无法将属性“innerHTML”设置为null

    我知道这意味着没有具有该Id的对象,但我设置了一个对象,使其具有该Id。在Firefox的调试器的那一行代码中,它说Id已经设置好了,但在Chrome的调试器的同一行,它说还没有。

    以下是代码摘录:

      arrayFinal[arrayln2]="end";
      var displayNumber=0;
      while(arrayFinal[displayNumber].charAt(0) != "e"){
        var boxPath="camper_htmls/"+arrayFinal[displayNumber]+".txt";
        boxhttp = new XMLHttpRequest();
        boxhttp.open("GET",boxPath,false);
        boxhttp.send(null);
        var boxHTML = boxhttp.responseText;
        var setDivId=document.createAttribute("Id");
        setDivId.value=("div_"+displayNumber);
        var node = document.createElement("div");
        node.setAttributeNode(setDivId);
        document.getElementById("resultContainer").appendChild(node);
        var divIdNumber = ("div_"+displayNumber);
        document.getElementById(divIdNumber).innerHTML=boxHTML;
        displayNumber++;
      }
    

    尽管这个代码的一个版本几乎在网站的每一个页面上都在使用,但它们都不起作用。

    1 回复  |  直到 11 年前
        1
  •  4
  •   Musa    12 年前

    使用 id 而不是 Id 如中所示

    var setDivId=document.createAttribute("id");
    

    DEMO