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

时间:2013-03-15 01:52:30

标签: javascript google-chrome innerhtml

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

我已经将Chrome和Firefox中的调试器并排倾倒了几个小时,并且在我的生活中无法弄清楚问题是什么。它一直给我一个错误。我确切地知道错误意味着什么,以及为什么它给我错误,但我无法弄清楚是什么导致错误。

这是错误:未捕获的TypeError:无法设置属性'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 个答案:

答案 0 :(得分:4)

中使用id代替Id
var setDivId=document.createAttribute("id");

DEMO