jQuery('ol.productList li.product input[name*="cart.pAsin."]').load().each(function(){ // each function
var asinId = jQuery(this).val();
var pUrl = jQuery(this).siblings("a").attr('href');
var imgPath = jQuery(this).siblings("a").children('img').attr('src');
var productTitle = jQuery(this).siblings("div.productDetails").children('h4.title').text();
var descUrl = '/api/product/asin/' + asinId;
var productDesc = '';
jQuery.getJSON(descUrl, function(data) {
var attr = data.attributes[1];
productDesc = attr.productDescription;
var allinfo = [];
allinfo.push(asinId,productTitle,productDesc,pUrl,imgPath);
alert(allinfo[0]);
});
});
alert('Asin id :'+ asinId + ' Product Url : '+ pUrl + ' Image Path : ' +imgPath + ' Product Titl : '+productTitle+ ' Product Discription : ' +productDesc);
-1
A
回答
1
无法访问asinId
,pUrl
等,因为它们是匿名函数的范围内定义,你传递给each()
方法。
甚至使问题变得更加混乱,productDesc
可能不是也是你正在寻找的价值,即使你尝试上述匿名function
作为getJSON
运行中访问它AJAX
下是异步的,也就是说价值productDesc
.getJSON
处理程序完成后,不能保证呼叫将被分配。
您可以定义asinId等出each()
方法,然后它会提供的匿名功能范围之外:
var asinId = jQuery(this).val();
var pUrl = jQuery(this).siblings("a").attr('href');
var imgPath = jQuery(this).siblings("a").children('img').attr('src');
var productTitle = jQuery(this).siblings("div.productDetails").children('h4.title').text();
var descUrl = '/api/product/asin/' + asinId;
var productDesc = '';
jQuery('ol.productList li.product input[name*="cart.pAsin."]').load().each(function(){ // each function
asinId = jQuery(this).val(); // notice this is without var keyword
// rest of your code
});
alert('Asin id :'+ asinId + ' Product Url : '+ pUrl + ' Image Path : ' +imgPath + ' Product Titl : '+productTitle+ ' Product Discription : ' +productDesc);
0
简单地定义他们每个()的匿名函数的类的范围之外这样的:
var asinId = null;
var pUrl = null;
...
jQuery('ol.productList li.product input[name*="cart.pAsin."]').load().each(function(){ // each function
asinId = jQuery(this).val();
pUrl = jQuery(this).siblings("a").attr('href');
...
现在,您可以从外部访问他们,因为他们现在属于全局范围。
相关问题
- 1. Javascript变量功能之外?
- 2. jQuery的 - 用变量功能外
- 3. jQuery的:引用和更新内部功能之外的变量
- 4. AS3:功能之外的访问变量
- 5. 功能之外的复选框变量
- 6. jQuery变量在功能之外没有改变
- 7. 使用变量中的功能外它
- 8. 使其可用的功能外变量
- 9. 获取变量之外的功能jQuery的
- 10. JavaScript变量undefined功能之外
- 11. 功能改变变量之外的变量
- 12. 的JavaScript之外的功能变量更新从内部功能
- 13. Python中获取变量值的功能之外的RabbitMQ
- 14. 如何访问功能之外的Javascript变量值
- 15. 在$(document).ready之外使用jquery变量
- 16. jQuery - 功能之间共享变量
- 17. 在其功能之外使用变量'i'
- 18. 用疗法的功能之外的局部变量在JavaScript
- 19. jQuery全局变量值超出功能
- 20. Node.JS变量外功能
- 21. C++成员变量没有在功能之外被改变
- 22. jQuery的各功能不能在IE
- 23. jQuery&Scope - 功能之外的$('#elements')
- 24. 的Javascript:初始化变量之外的功能和内部功能
- 25. GET数组声明的功能,各功能之外没有在PHP
- 26. 的NodeJS PG-承诺得到变量之外的功能范围
- 27. 需要访问变量之外的功能和另一个
- 28. 在提交功能事件之外获取变量的内容
- 29. 允许使用除一个之外的矢量功能?
- 30. 巴什 - 功能变化的变量值