Javascript jqueryajax函数
我创建了一个helper函数,用于为旋转木马构建列表项。理想情况下,我会在页面底部调用它,并在页面上输出html结构。它应该接收一个url,然后从传递的url获取数据 有人能告诉我为什么下面的函数不将值返回到页面吗 JavascriptJavascript jqueryajax函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,我创建了一个helper函数,用于为旋转木马构建列表项。理想情况下,我会在页面底部调用它,并在页面上输出html结构。它应该接收一个url,然后从传递的url获取数据 有人能告诉我为什么下面的函数不将值返回到页面吗 Javascript function selectAfterCharacter(item, character) { return item.substring(item.lastIndexOf(": ") + 1, item.length).trim(); } fun
function selectAfterCharacter(item, character) {
return item.substring(item.lastIndexOf(": ") + 1, item.length).trim();
}
function buildCarouselItem (url) {
jQuery.ajax({
url: url,
success: function(result) {
html = jQuery(result);
var title = (html.find("h1#product_title").html());
var productId = (html.find("span#prod_code").html());
var strippedId = selectAfterCharacter(productId, ": ");
var price = (html.find("span.one_price").html());
var Nowprice = (html.find("span.now_price").html());
if (price !== undefined) {
var price = (html.find("span.one_price").html());
} else {
var price = (html.find("span.now_price").html());
}
return(`
<li>
<a href='${url}'>
<img alt='${title}' src='http://www.awebsite.com/${strippedId}/large/${strippedId}.jpg'>
<div class="product-title">
${title}
</div>
<div class="product-price">
<h4>${price}</h4>
</div>
</a>
</li>
`
);
},
});
};
function buildCompleteCarousel (theArray) {
for (var i = 0; i < theArray.length ; i++) {
buildCarouselItem(theArray[i]);
}
}
var LinksArray = [
"http://www.awebsite.com/115812",
"http://www.awebsite.com/115812",
"http://www.awebsite.com/115812"
];
var htmlOutput = buildCompleteCarousel(LinksArray);
$('output').innerHTML = htmlOutput;
功能选择AfterCharacter(项目,字符){
返回item.substring(item.lastIndexOf(“:”)+1,item.length.trim();
}
函数buildCarouselItem(url){
jQuery.ajax({
url:url,
成功:功能(结果){
html=jQuery(结果);
var title=(html.find(“h1#product_title”).html();
var productId=(html.find(“span#prod_code”).html();
var strippedId=selectAfterCharacter(productId,“:”);
var price=(html.find(“span.one_price”).html();
var Nowprice=(html.find(“span.now_price”).html();
如果(价格!==未定义){
var price=(html.find(“span.one_price”).html();
}否则{
var price=(html.find(“span.now_price”).html();
}
返回(`
`
);
},
});
};
功能构建完成转盘(theArray){
对于(变量i=0;i
不能从异步函数返回任何内容。您可以返回的是一个承诺,也可以使用如下callback
函数:
功能选择AfterCharacter(项目,字符){
返回item.substring(item.lastIndexOf(“:”)+1,item.length.trim();
}
函数buildCarouselItem(url,回调){
jQuery.ajax({
url:url,
成功:功能(结果){
var html=jQuery(结果);
var title=(html.find(“h1#product_title”).html();
var productId=(html.find(“span#prod_code”).html();
var strippedId=selectAfterCharacter(productId,“:”);
var price=(html.find(“span.one_price”).html();
var Nowprice=(html.find(“span.now_price”).html();
如果(价格!==未定义){
price=(html.find(“span.one_price”).html();
}否则{
price=(html.find(“span.now_price”).html();
}
var returnVal=“\
\
”;
if(回调类型==='function'){
回调(returnVal);
}
}
});
}
功能构建完成转盘(theArray){
对于(变量i=0;i函数buildCarouselItem(url){
var myHTML='';
jQuery.ajax({
url:url,
async:false,
成功:功能(结果){
html=jQuery(结果);
var title=(html.find(“h1#product_title”).html();
var productId=(html.find(“span#prod_code”).html();
var strippedId=selectAfterCharacter(productId,“:”);
var price=(html.find(“span.one_price”).html();
var Nowprice=(html.find(“span.now_price”).html();
如果(价格!==未定义){
var price=(html.find(“span.one_price”).html();
}否则{
var price=(html.find(“span.now_price”).html();
}
myHTML=`
`;
);
},
});
返回myHTML;
};
功能构建完成转盘(theArray){
var HTML='';
对于(变量i=0;i
重要的部分是unjquery.ajax:“async:false”。
因此,函数将等待ajax返回html,因为您无法从ajax返回,您需要使用承诺或回调函数。.永远不要建议使用async:false
。已经弃用了。谢谢你提供的信息。
function buildCarouselItem (url) {
var myHTML = '';
jQuery.ajax({
url: url,
async: false,
success: function(result) {
html = jQuery(result);
var title = (html.find("h1#product_title").html());
var productId = (html.find("span#prod_code").html());
var strippedId = selectAfterCharacter(productId, ": ");
var price = (html.find("span.one_price").html());
var Nowprice = (html.find("span.now_price").html());
if (price !== undefined) {
var price = (html.find("span.one_price").html());
} else {
var price = (html.find("span.now_price").html());
}
myHTML = `
<li>
<a href='${url}'>
<img alt='${title}' src='http://www.awebsite.com/${strippedId}/large/${strippedId}.jpg'>
<div class="product-title">
${title}
</div>
<div class="product-price">
<h4>${price}</h4>
</div>
</a>
</li>
`;
);
},
});
return myHTML ;
};
function buildCompleteCarousel (theArray) {
var HTML = '';
for (var i = 0; i < theArray.length ; i++) {
HTML += buildCarouselItem(theArray[i]);
}
return HTML;
}