XML createElement不是函数错误

时间:2015-03-23 07:33:07

标签: jquery xml

我正在构建一个小型网站,以协助修改空间工程师Sandbox.sbc文件或更轻松地插入mod \ n。

我的问题是jquery似乎没有识别appendChild或createElement函数。控制台显示错误消息

Uncaught TypeError: $mods.appendChild is not a function

这是一个例子。



$(document).ready(function() {
  $("#insertmod").click(function() {
    var xml = $("#xmlTree").val(),
      modID = $("#modID").val(),
      xmlDoc = $.parseXML(xml),
      $xml = $(xmlDoc),
      $mods = $xml.find("Mods");

    moditem = "<ModItem><Name>" + modID + ".sbm</Name><PublishedFileId>" + modID + "</PublishedFileId></ModItem>"
    $mods.appendChild(moditem);
    $("#newXMLTree").val($xml);
    // Append "RSS Title" to #someElement
    $("#debug").append($mods.text());
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label for="modID">Mod ID
  <input type="text" name="modID" id="modID">
</label>
<br>
<label for="xmlTree">Current Sanbox.sbc XML
  <br>
  <textarea name="xmlTree" id="xmlTree" cols="30" rows="10">
    <Mods>
      <ModItem>
        <Name>302257706.sbm</Name>
        <PublishedFileId>302257706</PublishedFileId>
      </ModItem>
      <ModItem>
        <Name>303127240.sbm</Name>
        <PublishedFileId>303127240</PublishedFileId>
      </ModItem>
      <ModItem>
        <Name>301534203.sbm</Name>
        <PublishedFileId>301534203</PublishedFileId>
      </ModItem>
      <ModItem>
        <Name>300709199.sbm</Name>
        <PublishedFileId>300709199</PublishedFileId>
      </ModItem>
    </Mods>
  </textarea>
</label>
<br>
<button id="insertmod">Insert Mod</button>
<br>
<br>
<label for="newXMLTree">New Sandbox.sbc XML
  <br>
  <textarea name="newXMLTree" id="newXMLTree" cols="30" rows="10"></textarea>
</label>
<div id="debug"></div>
&#13;
&#13;
&#13;

我不确定我做错了什么。第一个文本区域中的xml通常会长得多,但我为了简洁起见了它。

基本上想要的是用户在输入文本框中输入他们的mod id,然后将他们当前的Sandbox xml复制到第一个文本区域。

当用户点击插入按钮时,jQuery获取mod id,从第一个textarea解析xml,找到mods xml节点并将一个新的mod项附加到a然后将整个xml插入到第二个textarea中,这样用户可以将其复制回Sandbox.sbc文件。

1 个答案:

答案 0 :(得分:1)

$mods是一个jQuery对象,因此没有名为appendChild()的方法

$mods.append(moditem);

演示:Fiddle