如何使用jquery load检查加载的div标签的内容?

时间:2011-08-08 19:08:37

标签: php javascript jquery onchange

我正在使用jqueries地址更改事件,并且当用户在浏览器中复制并粘贴URL时遇到障碍。我需要拳头加载包含表单的页面的一部分。我可以在每次分页后都这样做,但看起来真的很无效。

这是我目前的代码块:

$.address.change(function(e) {

    var urlAux = e.value.split('=');
    var page   = urlAux[0];
    var start  = urlAux[1];

    if (page == "/visits") {

        $.address.title("Profile Views");

        if (start) {

            $('#start').val(start);

            // ***** If a user has copied and pasted this URL with a start value then I first need to load visits.php in the main div tag.  Is it possible to see if this is loaded or not?

            $.post("visits_results.php", $("#profile_form_id").serialize(),
                function(data) {
                    $('#search_results').html(data);
                    location.href = "#visits=" + start; 
                });

        }
        else {
            var args = localStorage.getItem("visits");

            $('#main').load("visits.php?" + args, function () { }); 
        }
    }

我试图解决这个问题:

var args = localStorage.getItem("visits");

$('#main').load("visits.php?" + args, function () { 

    $('#start').val(start);

    $.post("visits_results.php", $("#profile_form_id").serialize(),
        function(data) {
            $('#search_results').html(data);
            location.href = "#visits=" + start; 
         });
    }); 

必须有一个更好的方法......这是在每个分页事件中对页面的相同部分(visits.php)进行实现。是否有更好的方法来加载URL而不是让它们触发地址更改?

2 个答案:

答案 0 :(得分:1)

从他的评论中使用paul的工作,但是这个解决方案将寻找附加到#mainID的data(),而不是在visit.php表单中使用正则表达式的html内容。

保罗关于笔记的工作:

  

经过多次黑客攻击后,我想出了这个似乎有用的解决方案   诀窍。我不确定它有多好,但似乎可以做到这一点。一世   现在得到主div id并在一个唯一的字符串上进行正则表达式匹配   形成。如果我没有看到它,我加载表单,然后加载结果。不   确定这是否是好的做法,但它似乎解决了我的问题。

使用.data()代替visit.php的html的正则表达式搜索的方法:

    /*check if we're missing visits.php by looking for data() flag*/
             if( !($("#main").data()["hasVisitsPhp"]) ){
              var args = localStorage.getItem("visits");
              $('#main').load("visits.php?" + args, function () { 
                $('#start').val(start);
                $.post("visits_results.php", $("#profile_form_id").serialize(),
                    function(data) {
/* we've loaded visits.php, set the data flag on #main*/
                $('#main').data("hasVisitsPhp","loaded");
                        $('#search_results').html(data);
                        location.href = "#visits=" + start; 
                     });
                });
             }

答案 1 :(得分:0)

尝试window.location.hash。更改整个href可以/将触发整页重新加载,而仅更改哈希本身应该最多导致页面滚动。