我有这些代码。除了调用XML数据外,一切都有效。我不知道为什么。我怀疑这是因为选择器,但我已经尝试了我认为可以工作的一切。
function addPart() {
var pn = document.getElementById("pn").value;
$(this.parentNode).prepend("<div id='part" + pn + "' class='show'><select id='pselect" + pn + "'></select></div>");
$("pselect" + pn).append(function(){
$.ajax({
type: "GET",
url: "test.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('value').each(function(){
var value = $(this).text();
$("#pselect" + pn).append("<option value='" + value + "'>" + value + "</option>");
});
}
});
});
$("#part" + pn).append("<span style='font-weight: bold;'> QTY: </span><input name='QTY' type='text' style='width: 20px;'> <a href='#' onClick='removeItem(\"#part" + pn + "\")'>Remove</a><p> </p>");
pn = (pn - 1) + 2;
document.getElementById("pn").value = pn;
}
function removePart(id) {
$(id).remove();
}
XML看起来像这样:
<?xml version="1.0" encoding="iso-8859-1" ?>
<test>
<value>Text1</value>
<value>Text2</value>
<value>Text3</value>
</test>
答案 0 :(得分:1)
您提供的代码看起来有两个问题。变量pn既用作整数又用作字符串,造成一些混淆。 ajax也出现在重复附加内?
function addPart() {
var pn = $("#pn").val();
var textpn=pn;
$("pselect + textpn).prepend("<div id='part" + textpn + "' class='show'><select id='pselect" + textpn + "'></select></div>");
//$("pselect" + pn).append(function(){
$.ajax({
type: "GET",
url: "test.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('value').each(function(){
var value = $(this).text();
$("#pselect" + textpn).append("<option value='" + value + "'>" + value + "</option>");
});
}
});
//});
$("#part" + textpn).append("<span style='font-weight: bold;'> QTY: </span><input name='QTY' type='text' style='width: 20px;'> <a href='#' onClick='removeItem(\"#part" + textpn + "\")'>Remove</a><p> </p>");
pn++;
$("#pn").val(pn)
}
function removePart(id) {
$(id).remove();
}