Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 如何从.load()和#x27;佩奇?_Javascript_Jquery - Fatal编程技术网

Javascript 如何从.load()和#x27;佩奇?

Javascript 如何从.load()和#x27;佩奇?,javascript,jquery,Javascript,Jquery,我想将整个网站加载到我的网站中。我已经能够用$(#preview)完成这项工作。将(“index.php”)加载到我的中。我在这里遇到的问题是背景图像,这是身体的一个属性。我试着制作一个带有背景图像属性的div标签,但当我从body标签中删除该图像时,它的行为并不像我想要的那样(没有填满整个空间) 我的问题是如何从index.php中访问一些内容,使我能够正确预览站点或将属性从某处复制到预览背景图像属性中? 我的代码现在看起来是这样的,经过了大量的尝试和错误(更像是错误和错误,它变得越来越凌乱)

我想将整个网站加载到我的网站中。我已经能够用
$(#preview)完成这项工作。将(“index.php”)
加载到我的
中。我在这里遇到的问题是背景图像,这是身体的一个属性。我试着制作一个带有背景图像属性的div标签,但当我从body标签中删除该图像时,它的行为并不像我想要的那样(没有填满整个空间)

我的问题是如何从index.php中访问一些内容,使我能够正确预览站点或将属性从某处复制到预览背景图像属性中?

我的代码现在看起来是这样的,经过了大量的尝试和错误(更像是错误和错误,它变得越来越凌乱)

其中bg是div的id,该div在index.php中用作“替换”body标记(也称为具有与body相同的属性)


我不是离它很远,就是离它很近。谢谢你给我的每一条建议。

这里有两个问题。一个与如何访问样式属性有关,另一个与
load()
的异步行为有关

   $(document).ready(
        function() {    
            $("#check").click(
                function() {
                    $.ajax({
                             url: 'index.php',
                             success: function(data){
                                 data = $('data').html();
                                 $('#preview').html(data);
                                 bg = $('data').find('#bg').css('background-image');
                                 $('#preview').css('background-image',bg);
                             }
                        });

                }
            );
        }
    );
风格问题 您需要使用
$(“#preview”).css('background-image',bgd)
。您使用的第一种方法仍然可以通过访问非jQuery包装的元素来保留,如下所示:

$("#preview")[0].style.backgroundImage(bgd);
异步问题 第二个问题是.load()是一个立即返回的异步调用。下一行代码被执行,
bdg
很可能仍然没有定义。然后当
load()
完成时,将执行成功处理程序,并将
bdg
设置为加载页面的背景,但为时已晚

$(“#preview”).css('background-image',bgd)
移动到成功处理程序将纠正该问题:

   $(document).ready(
        function() {    
            $("#check").click(
                function() {
                    var bgd;
                    $("#preview").load("index.php", 
                        function () {
                            bgd = $("#bg").css("background-image");
                            $("#preview").css('background-image',bgd);
                        }
                    );
                }
            );
        }
    );

style
backgroundImage
不是jQuery方法。。您应该尝试
.css('background-image',bgd)
的回调将响应数据作为第一个参数发送,您需要在尝试修改它之前获取该数据并将其注入到文档中..load()是异步的。。。将其移动到成功手柄中,您仍然可以在此处使用load。它可以帮助您不用手工解析数据并将数据添加到目标元素中。噢,我没有想到ajax。Tbh我甚至不知道ajax是做什么的,我只是读了一些关于jquery的文章,同时跳过了W3K上的ajax。谢谢你对我这么好地解释了这一点,并且在仍然使用我自己的代码时使它易于理解:)+1到Jonathan F
   $(document).ready(
        function() {    
            $("#check").click(
                function() {
                    var bgd;
                    $("#preview").load("index.php", 
                        function () {
                            bgd = $("#bg").css("background-image");
                            $("#preview").css('background-image',bgd);
                        }
                    );
                }
            );
        }
    );