在Jquery中加载图层

时间:2013-04-30 06:51:22

标签: javascript jquery jquery-plugins

以下是我工作的代码

$.ajax({
    type: 'GET',   
    url: '<?php echo site_url(); ?>register',  
    data: "",    
    success: function (data) {
        $("#ldcontent").html(data);
    }
});

我想在上面的代码中调用一个图层,如#ldfgp

中所示
$('#ldcontent').load('<?php echo site_url(); ?>register #ldfgp');

我的问题是可以通过#ldfgp从加载页面调用图层($.ajax())到我的母版页。

我不能在jquery中使用load函数,因为它排除了加载页面中嵌入的JavaScript。

您的建议和帮助非常感谢。

4 个答案:

答案 0 :(得分:1)

由于$ .ajax加载整个html文件包含html&gt; body,$(data)正在创建一个奇怪的Jquery对象。 所以你可以使用$(data).find或$(data).filter来查找你的元素。你可以试试像:

$.ajax({
type: 'GET',   
url: '<?php echo site_url(); ?>register',  
data: "",    
success: function (data) {
     var $data=$(data);
     var $layer=$()
             .add($data.find('#ldfgp'))
             .add($data.filter('#ldfgp'));



      $('#ldcontent').html($layer);

    }
});

答案 1 :(得分:1)

您可以将整个文档加载到某个HTML片段,然后从中获取相关内容

$.ajax({
    type: 'GET',   
    url: '<?php echo site_url(); ?>register',  
    data: "",    
    success: function (data) {
        var $fragment = $('<div/>').html(data);
        $("#ldcontent").html( $fragment.find('#ldfgp').html() );
    }
});

答案 2 :(得分:0)

你可以试试这个 -

$.ajax({
    type: 'GET',   
    url: '<?php echo site_url(); ?>register',  
    data: "",    
    success: function (data) {
        $("#ldcontent").html(data);
        $("#ldcontent *").css('display','none');
        $("#ldcontent #ldfgp").css('display','block');
        $("#ldcontent #ldfgp *").css('display','block');
    }
});

答案 3 :(得分:0)

所以,我们假设我们有register.html这样的文档:

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <div id="ldfgp">
            <h1>Hello</h1>
        </div>
        <div>
            <h1>Hello 2</h1>
        </div>
        <div>
            <h1>Hello 3</h1>
        </div>
    </body>
</html>

使用$ .ajax(),您可以通过这种方式获取ID为#ldfgp的元素:

    $(document).ready(function() {
        $.ajax({
                type: 'GET',
                url: './register.html',
                data: "",
                success: function (data) {
                        var external = $.parseHTML(data);
                        $.each(external, function(i, e) {
                            if ($(e).attr("id") == "ldfgp") {
                                $("#ldcontent").html(e);
                                return false;
                            }
                        });
                }
        });
    });

但我个人更喜欢Vadim的解决方案,因为它更清晰,并且不涉及显式的.each()迭代。