我目前正在尝试选择元素的childNode
这就是我试图这样做的方式:

var postBody_elem = elem.parentNode.parentNode.childNodes['post'].childNodes['postBody'];

我也尝试过:

elem.parentNode.parentNode.childNodes[0].childNodes[1];

我知道这是我测试过的childNodes而不是parentNodes的问题。

这是我正在做的简化结构:

<section id = 'postWrapper'>                          //This is the Second Parent.
  <article id = 'post'>                               //This should be the First Child.
    <section id = 'postInfo'>
      <section id = 'postTitle'></section>
      <section id = 'poster'></section>
      <section id = 'postDate'></section>
    </section>
    <section id = 'postBody'>                       //This should be the Second Child.
    </section>
  </article>
  <section id = 'postBar'>                          //This is the First Parent.
    <img id = 'portrait'>
    <section id = 'editButton'>Edit</section>       //This is the var elem.
    <section id = 'deleteButton'>Delete</section>
  </section>
</section>


我必须通过在父节点和子节点之间导航来引用'postBody'的原因是,此格式已多次迭代。

-这把我引到了我的问题,上面的代码行在Google Chrome中可用,但在FireFox中不可用,我尝试了很多变种,但控制台给我的错误是未定义。
我检查了元素是否正确声明,这只是我认为浏览器处理该元素的方式之间的差异。

如果有人有答案,我希望它是关于如何引用显示的元素,而不是关于我如何对多个元素不当使用id的讲座,因为在这种情况下,这不是问题(据我所知,因为它可以在Chrome中运行)。

谢谢。

最佳答案

第一种方法在Firefox中不起作用,因为它似乎是非标准的,而第二种方法则无效,因为您没有意识到childNodes也包含文本节点。要获取您想要的元素,请尝试

elem.parentNode.parentNode.childNodes['1'].childNodes['3']


http://jsfiddle.net/mowglisanu/UqZVn/

关于javascript - JS-从FireFox中选择childNodes的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13716326/

10-12 00:21