从AJAX获取元素返回的数据--- $(objSelector,data)

时间:2013-07-01 19:17:31

标签: jquery ajax

我遇到过多次成功使用的脚本问题。我写了它并将其用于模态框中的AJAX表单。但突然间它返回undefined。我很无能为力。谢谢你的帮助。

(JQuery版本1.9.1)

$(document).ready(function (){
    bind_bootstrap_modal_ajax_form('a[href*="prihlaseni"]', '#login-form');
});

function bind_bootstrap_modal_ajax_form(linkSelector, objSelector) {
    $(linkSelector).each(function(){
        var $linkObj = $(this);
        var link = $(linkSelector).attr('href');
        var objId = "modalFormContent" + Math.floor((Math.random()*10000)+1)

        $.get(link)
            .done(function(data) { 

                var $content = $(objSelector, data);

                var appendHTML = 
                '<div> ...'+
                        $content.html() + // This returns undefined
                '... </div>';
                $('body').append(appendHTML);
                var $obj = $('#'+objId);

                $linkObj.attr({
                    'data-toggle': 'modal',
                    'href': '#'+objId
                });

                // ...
            });
    });
}

data包含:

<!DOCTYPE html>
<html lang="cs" class="windows chrome chrome28 no-js">
    <head>
        <!-- ... -->
    </head>
<body class="empty">

    <div id="login-form">



    <form action="?login" method="post" class="form-horizontal m0">
        <fieldset>
            <legend>Přihlášení</legend>
            <div class="control-group">
                <label class="control-label" for="inputEmail">E-mail</label>
                <div class="controls">
                    <input type="text" name="login" id="login">
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="inputPassword">Heslo</label>
                <div class="controls">
                    <input type="password" name="pass" id="pass">
                </div>
            </div>
            <div class="control-group">
                <div class="controls">
                    <button type="submit" class="btn">Přihlásit</button>
                </div>
            </div>
        </fieldset>
    </form>





    </div>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

jQuery constructor的第二个参数是你想在里面搜索第一个参数的DOM上下文。

 // Looks for something matching 'objSelector' inside the DOM object 'data'
var $content = $(objSelector, data); // Will not work if data is a string

由于数据是字符串,您可以执行以下操作:

var $content = $(objSelector, $(data));

从数据中获取#login-form div。