所以我有两个相似但功能齐全的功能,但只有其中一个功能。
我有一个来自PrestaShop API的两个xml文件,我需要从中获取信息。第一个是产品名称,工作正常,第二个是ID,即使它与另一个几乎相同也不起作用。
根据输入的产品名称获取产品名称的代码:
delay(function () {
$.ajax({
type: "GET",
url: pageurl+"api/products/?display=[name]&filter[name]=%[" + $("#product_name").text() + "]%",
dataType: "xml",
username: key,
password: "",
contentType: "xml",
success: function (xml) {
var $xml = $(xml);
$("#product_names").html("");
$xml.find('product').each(function () {
var choice = $(this).find('language[id="1"]').text();
$("#product_names").append("<option value=\""+choice+"\">");
});
}
});
}, 700);
这是此函数正在阅读的XML文件:
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<products>
<product>
<name>
<language id="1" xlink:href="http://localhost/wogshop/api/languages/1">
<![CDATA[ Nice Dress ]]>
</language>
<language id="2" xlink:href="http://localhost/wogshop/api/languages/2">
<![CDATA[ Nice Dress ]]>
</language>
</name>
</product>
</products>
</prestashop>
这是无法读取XML文件的代码:
$.ajax({
type: "GET",
url: pageurl+"api/products/?display=[id]&filter[name]=[" + $("#product_name").text() + "]",
dataType: "xml",
username: key,
password: "",
contentType: "xml",
success: function (xml) {
var real_id;
real_id = $(xml).find('id').text();
$("#product_id").val(real_id);
$("#bananas").html("ID is "+$(xml).text());
}
});
如果我搜索“印花连衣裙”,这是它正在查看的XML文件:
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<products>
<product>
<id>
<![CDATA[ 3 ]]>
</id>
</product>
</products>
</prestashop>
我不知道为什么它不起作用。它看起来应该有效,但事实并非如此。
答案 0 :(得分:0)
好吧我自己修好了。当我将网址中的$("#product_name").text()
更改为$("#product_name").val()
时,一切都开始有效了。简而言之,将.text()
更改为.val()
。