我正在构建一个小型网站,以协助修改空间工程师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;
我不确定我做错了什么。第一个文本区域中的xml通常会长得多,但我为了简洁起见了它。
基本上想要的是用户在输入文本框中输入他们的mod id,然后将他们当前的Sandbox xml复制到第一个文本区域。
当用户点击插入按钮时,jQuery获取mod id,从第一个textarea解析xml,找到mods xml节点并将一个新的mod项附加到a然后将整个xml插入到第二个textarea中,这样用户可以将其复制回Sandbox.sbc文件。