【问题标题】:getElementsByTagName() returns 0 results for custom tagsgetElementsByTagName() 为自定义标签返回 0 个结果
【发布时间】:2014-07-30 12:48:02
【问题描述】:

我正在尝试从自定义标签中获取所有元素,例如。 <bring-home></bring-home>

例如。 var elm = document.getElementsByTagName('bring-home'), i;

console.log("Number of Elements: "+elm.length);

上面返回 0,我只是发现这会导致我的代码中出现其他问题。是否有某些原因我的自定义标签没有被此功能拾取?如何解决?

【问题讨论】:

  • 编写 HTML 而不是编写自己的元素。
  • 对我来说很好用 -> jsfiddle.net/T4nkF,但你为什么要这样做呢?你有机会使用旧版本的 IE 吗?
  • 我正在使用最新的 FF 36.0。我在 Chrome 中尝试过(虽然我不知道那是什么版本)。
  • 所以,我正在尝试仅将事件侦听器添加到某种类型的标签(点击)。自定义标签被设计为自定义元素,但我仍在学习。我是否可能需要使用 document.regsiterElement() 或其他东西?
  • 我有部分修复。在JSfiddle中看到adeno的代码后,我意识到这个函数被调用得太早了。所以我从 onLoad 而不是在标题中调用它。现在它注册元素。如果它解决了整体问题,将更新。谢谢。

标签: javascript dom tags


【解决方案1】:

好的,

  1. 脚本返回 0 个元素,因为它是在页眉中加载而不是在页面加载后加载。

    • 为了解决这个问题,我只是捆绑了document.getElementsByTagName 函数并将其加载到<body onload="funcName();"> html 中。
  2. 我仍然无法处理指向element.addEventListener('click', function()...) 的脚本(上文未提及)

    • 已通过将 (this) 传递给函数以引用对象来纠正。 (可能与其他用户相关)...

感谢您的帮助解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    相关资源
    最近更新 更多