【问题标题】:JavaScript Chrome does not seem to support adding an id through setAttributeNodeJavaScript Chrome 似乎不支持通过 setAttributeNode 添加 id
【发布时间】:2013-03-15 01:52:29
【问题描述】:

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

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

这是错误:Uncaught TypeError: Cannot set property 'innerHTML' of 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++;
  }

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

【问题讨论】:

    标签: javascript google-chrome innerhtml


    【解决方案1】:

    使用id 代替Id

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

    DEMO

    【讨论】:

    • 谢谢谢谢谢谢!!有效! iv 一直试图弄清楚几个小时。你知道为什么 chrome 不接受 ID,而 firefox 会吗?
    • 答案在被删除的原始问题中。哈哈。如果你注意的话,你会在 3 小时前得到答案。
    • 每个人都在生我的气,因为我没有检查调试器,并且投票否决了这个问题,所以我只是删除了这个问题。然后去了 youtube,学习了如何使用调试器。但它显然没有帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 2018-03-10
    • 2012-06-02
    • 2020-07-17
    • 1970-01-01
    • 2017-01-07
    相关资源
    最近更新 更多