jQuery Children语法问题之前

时间:2014-10-02 17:29:35

标签: jquery xml

我通过AJAX拉入XML文档并尝试在文档顶部插入一个新节点,但我在每个匹配的子节点上方插入了一个新节点。我原以为使用.children(0)我只会这样做一次。

我的错误是什么?

$.ajax({
    type: "GET",
    url: fileUrl,
    dataType: "xml",
    success: parseResultsXML
});
function parseResultsXML(xml) {
  $(xml).children(0).children(0).before("<item>New Node</item> \n");
  var xmlOutput = new XMLSerializer().serializeToString(xml);
  console.log(newfile, xmlOutput);
}

//Original File
<?xml version="1.0" encoding="UTF-8"?>
<items>
    <item>Existing Node 1</item>
    <item>Existing Node 2</item>
</items>

//Expected Output
<?xml version="1.0" encoding="UTF-8"?>
<items>
    <item>New Node</item>
    <item>Existing Node 1</item>
    <item>Existing Node 2</item>
</items>

//Actual Output
<items>
    <item>New Node</item>
    <item>Existing Node 1</item>
    <item>New Node</item>
    <item>Existing Node 2</item>
</items>

1 个答案:

答案 0 :(得分:1)

.children()可选择接受selector作为参数,但不接受索引 您可以使用.children(':first').children().eq(0)

JSFiddle example

<div>
    <span>first</span>
    <span>second</span>
</div>

console.log($('div').children().eq(0).text());
console.log($('div').children(':first').text());