Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqueryajax函数_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jqueryajax函数

Javascript 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

我创建了一个helper函数,用于为旋转木马构建列表项。理想情况下,我会在页面底部调用它,并在页面上输出html结构。它应该接收一个url,然后从传递的url获取数据

有人能告诉我为什么下面的函数不将值返回到页面吗

Javascript

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;
    }