javascript - getElementById 在有效的 div 上失败?

标签 javascript dom getelementbyid

困惑...执行下面10行代码后,elem1被定义,而elem2为null。然而,除了变量名称之外,这两个代码块是相同的,并且一个正在创建“svg”节点(有效),另一个正在创建“div”节点(失败):

   var chart_name = "chart_" + ui.panel.id;
   var chart_elem = document.createElementNS(svgNS, "svg");
   chart_elem.setAttributeNS(null, "id", chart_name);
   top.appendChild(chart_elem);
   var elem1 = document.getElementById(chart_name);

   var pldiv_name = "plist_" + ui.panel.id;
   var pldiv_elem = document.createElementNS(svgNS, "div");
   pldiv_elem.setAttributeNS(null, "id", pldiv_name);
   top.appendChild(pldiv_elem);
   var elem2 = document.getElementById(pldiv_name);

如果我在调用 getElementById 之前在代码的最后一行设置断点,Firebug 会向我显示以下 HTML View :

<div id="tabs-2" class="etc...">
<svg id="chart_tabs-2">
<div id="plist_tabs-2">
</div>

在 DOM View 中,Firebug 显示带有 localName svg 和 id chart_tabs-2elem1。它的下一个兄弟是一个 div,id 为 plist_tabs-2,它是 pldiv_name 的值。尽管如此,getElementById(pldiv_name) 仍然失败。

有什么想法吗?谢谢。

最佳答案

您可以尝试在 SVG 命名空间中创建 DIV 而不是吗?

var pldiv_elem = document.createElement("div");

关于javascript - getElementById 在有效的 div 上失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8805726/

相关文章:

javascript - 如何查找 DOM 元素是否附加了一些 Javascript?

Javascript 代码直到第二次点击 html 按钮才会触发?

javascript - 即使 javascript 在控制台中返回值,getEval 在 Selenium 上返回 null

javascript - HTML 脚本标记变灰且未加载

javascript - Leaflet 中的 Circle getBounds() 方法失败

javascript - 有没有办法使用 jQuery 选择器来获取与 document.documentElement.outerHTML 返回的字符串相同的字符串?

javascript - 当鼠标悬停在图 block 上时我的 CSS 模板出现问题

javascript - 使用 JavaScript 创建随机数并在不使用表单的情况下以 HTML 形式返回

javascript - jQuery 不在 Rails View 中运行

javascript - jQuery 选择器中使用的函数参数