0

以下是我正在工作的代码

$.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

4 回答 4

1

由于 $.ajax 加载整个 html 文档包括 html>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);

    }
});
于 2013-04-30T07:28:42.083 回答
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() );
    }
});
于 2013-04-30T07:30:24.743 回答
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');
    }
});
于 2013-04-30T07:20:08.423 回答
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() 迭代。

于 2013-04-30T08:15:07.257 回答