Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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 jQuery-加载所有元素后从另一个页面加载_Javascript_Jquery_Jquery Load - Fatal编程技术网

Javascript jQuery-加载所有元素后从另一个页面加载

Javascript jQuery-加载所有元素后从另一个页面加载,javascript,jquery,jquery-load,Javascript,Jquery,Jquery Load,我想在类别页面上显示产品的评级,它位于id rating的div中的product页面上,因此我制作了以下脚本: $('.product').each(function(){ var url = $(this).find('a').attr('href'); $(this).prepend('<div class="rating"></div>'); $(this).find('.rating').load(url +'#rating'); });

我想在类别页面上显示产品的评级,它位于id rating的div中的product页面上,因此我制作了以下脚本:

$('.product').each(function(){
    var url = $(this).find('a').attr('href');
    $(this).prepend('<div class="rating"></div>');
    $(this).find('.rating').load(url +'#rating');
});
$('.product')。每个(函数(){
var url=$(this.find('a').attr('href');
$(this.prepend(“”);
$(this).find('.rating').load(url+'#rating');
});
问题是,产品页面上的评级是用另一个脚本生成的,因此元素#评级从一开始就不存在于网站上,因此在进行一些搜索后,我尝试添加ajaxcomplete功能:

$('.product').each(function(){
    var url = $(this).find('a').attr('href');
    $(this).prepend('<div class="rating"></div>');
    $(this).ajaxComplete(function(nxt) {
        $(this).find('.rating').load(url +'#rating');
        nxt();
    });
});
$('.product')。每个(函数(){
var url=$(this.find('a').attr('href');
$(this.prepend(“”);
$(此).ajaxComplete(函数(nxt){
$(this).find('.rating').load(url+'#rating');
nxt();
});
});
但这似乎也不起作用,所以我想知道有什么办法可以解决这个问题吗


谢谢

您需要加载使用jQuery getScript进行评级的脚本。通过这种方式,您可以将处理依赖于getScript调用的成功处理程序中的评级脚本

代码将如下所示:

$.getScript( "rating.js", function( data, textStatus, jqxhr ) {
  console.log( "rating complete" );
  $('.product').each(function(){
    var url = $(this).find('a').attr('href');
    $(this).find('.rating').load(url +'#rating');
  }
});

另一个页面是否包含
div#rating
?产品页面从一开始就不包含div#rating,页面完全加载后,它会加载脚本。你不能在分类页面上使用相同的脚本吗?所以基本上你想知道评级脚本何时执行?很遗憾,总而言之,我不能这样做,这是用于AB测试的,并且脚本不在类别页面上,并且脚本工作所需的一些参数在类别页面上不可用,我无法更改这一点,我担心问题是,所讨论的脚本在产品页面上,而不是在我运行代码的类别页面上,有没有办法为另一个页面运行该函数?因此,您基本上是通过屏幕抓取产品页面来获得评级?类似于这样的是。load()调用只获取页面的HTML,而不执行它。。您需要返回到绘图板,并使用iFrames执行此操作。。。试着作为一个起点。或者这个。。