刚接触 jQuery,遇到简单但令人困惑的问题。哈2。
我正在使用读取 xml 文件的 jQuery 函数编写这个普通的 javascript 函数。如何为顶部声明的 prodPrice 变量赋值?脚本不断返回 0 值,但如果我在 jQuery 函数中提醒该值,我就会设法获得我想要的值。
谢谢大家。
function getPrice(valprodID)
{
var prodPrice=0;
jQuery.ajax({
type: "GET",
url: "products.xml",
dataType : "xml",
success : function(xml)
{
jQuery(xml).find('prod').each(function(){
var prodID = jQuery(this).find('prodID').text();
if(prodID == valprodID)
{
prodPrice = jQuery(this).find('prodPrice').text();
return false;
}
});
}
})
return prodPrice;
}
最佳答案
这是因为 $.ajax
是异步执行的。
这是您学习如何使用 $.Deferred
function getPrice(valprodID)
{
var prodPrice=0;
return jQuery.ajax({
type: "GET",
url: "products.xml",
dataType : "xml"
}).pipe(function(xml)
{
jQuery(xml).find('prod').each(function(){
var prodID = jQuery(this).find('prodID').text();
if(prodID == valprodID)
{
return jQuery(this).find('prodPrice').text();
}
});
});
}
现在您可以这样调用 getPrice()
函数:
getPrice(someid).done(function(prodPrice) {
// do what you need with prodPrice
});
这是 jsfiddle 的示例:http://jsfiddle.net/zerkms/9MgsX/1/
关于javascript - jquery函数访问本地javascript变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10925271/