jQuery第一次返回XML节点,但第二次调用它时,它是空的

时间:2012-11-21 22:33:41

标签: javascript jquery xml

我通过AJAX和jQuery在外部加载的文件中使用了这个XML:

<project>
    <title>Title Name 2</title>
    <tags>Tag1.Tag2</tags>
    <image src="img/portfolio/better/better01.jpg" title="Image title" tags="Tag1.Tag2"></image>
    <image src="img/portfolio/better/better02.jpg" title="Image title" tags="Tag1.Tag2"></image>
    <thumb src="img/portfolio/better/better01.jpg" title="Image title" tags="Tag1.Tag2"></thumb>
    <copy>
        <columnOne>
            <p>Lorem ipsum dolor sit amet, cons ectetur adipiscing elit. Nulla lobortis accumsan purus. Nulla at arcu est. Mauris iaculis ses tincidunt odio cursus accumsan. Morbi quis interdumes massa. Nulla eu ipsum nunc, necs gravida metus. Pelle ntesque utes ligula est nec ullamcorper nulla.</p>
            <p>Cras id hendrerit velit. Suspendisse arscibus libero. Pellentesqueses habitant morbi trtique senctus et netus etsuada fames ac turpis egestas. Aliquam sagittise euismod velit, quis pharetra lacus ibulum mollis saewesty.</p>
        </columnOne>
        <columnTwo>
            <p>Morbi quis inteumes massa. Nulla eu ipsum nunc, necs gravida metus. Pelle ntesqueessy ligula est nec ullamcorper nulla</p>
        </columnTwo>
     </copy>
</project>

XML文档中有几个节点。我已将所有节点推送到名为'project_array'的数组中。当我这样做时:

console.log(project_array[0].text());

我明白了:

Title Name 2
    Tag1.Tag2







            Lorem ipsum dolor sit amet, cons ectetur adipiscing elit. Nulla lobortis accumsan purus. Nulla at arcu est. Mauris iaculis ses tincidunt odio cursus accumsan. Morbi quis interdumes massa. Nulla eu ipsum nunc, necs gravida metus. Pelle ntesque utes ligula est nec ullamcorper nulla.
            Cras id hendrerit velit. Suspendisse arscibus libero. Pellentesqueses habitant morbi trtique senctus et netus etsuada fames ac turpis egestas. Aliquam sagittise euismod velit, quis pharetra lacus ibulum mollis saewesty.


            Morbi quis inteumes massa. Nulla eu ipsum nunc, necs gravida metus. Pelle ntesqueessy ligula est nec ullamcorper nulla

我期望的是“项目”中节点的全部内容。我第二次调用它时只得到'title'和'tags'节点,'columnOne'和'columnTwo'节点都是空的。

头撞方案。任何帮助非常感谢。

2 个答案:

答案 0 :(得分:1)

根据您填充project_array的方式,调用project_array[0].text()实际上可能会删除text内容,但我不确定为什么<title><tags>将在下一次出现。

尝试使用$(project_array[0]).clone().text(),将其存储在变量中,然后将该变量用于重复引用。

答案 1 :(得分:0)

.text()是一个在jQuery Object上使用的方法

如果project_array是一个节点数组,为什么使用project_array[0].text()

看起来应该是

console.log($(project_array[0]).text())