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. 功能之外的复选框变量
- 5. AS3:功能之外的访问变量
- 6. jQuery变量在功能之外没有改变
- 7. 使其可用的功能外变量
- 8. 使用变量中的功能外它
- 9. JavaScript变量undefined功能之外
- 10. 功能改变变量之外的变量
- 11. 的JavaScript之外的功能变量更新从内部功能
- 12. Python中获取变量值的功能之外的RabbitMQ
- 13. jQuery - 功能之间共享变量
- 14. 在其功能之外使用变量'i'
- 15. 用疗法的功能之外的局部变量在JavaScript
- 16. Node.JS变量外功能
- 17. 的Javascript:初始化变量之外的功能和内部功能
- 18. GET数组声明的功能,各功能之外没有在PHP
- 19. 的NodeJS PG-承诺得到变量之外的功能范围
- 20. 需要访问变量之外的功能和另一个
- 21. 允许使用除一个之外的矢量功能?
- 22. 巴什 - 功能变化的变量值
- 23. 在jquery范围之外的alert变量
- 24. 使用具有选择值的功能更改变量值
- 25. Python的 - 如何共享功能之间的变量(不使用全局变量)
- 26. 通在功能之外的功能
- 27. 设置在各功能的jQuery
- 28. 全局静态变量不是“保持定义”功能之外
- 29. 在函数之外显示增量变量{变量}的值
- 30. 熊猫使用外部变量应用功能