在嵌套的匿名函数中找不到具有id的div

时间:2012-05-24 02:26:59

标签: ajax jquery partial-views

我在另一个匿名函数中有一个ajax调用。我遇到的问题是这个长度为零。

//data_ajax_target equals '#partial_f_Picture'
Debug.Log($(data_ajax_target).length); // equal zero.

这可以防止从ajax调用返回的html替换div的内容。

这是我的div

<div id="#partial_f_Picture">
    <div id="fileuploader-small-f_Picture" 
        data-ajax-uploadurl="...omitted..."
        data-ajax-target="#partial_f_Picture">
    </div>
</div>

这是我减少的javascript

$(function ()
{
    FileUploaderSmallReady();
});

...

function FileUploaderSmallReady()
{
    var uploaderDiv = $('[id^="fileuploader-small"]').each(function ()
    {
        var data_ajax_uploadurl = $(this).attr('data-ajax-uploadurl');
        var data_ajax_target = $(this).attr('data-ajax-target');

        var uploadersmall = new qq.FileUploader({
            element: document.getElementById($(this).attr('id')),
            action: data_ajax_uploadurl,
            onComplete: function (file, response, responseJSON)
            {
                var data_ajax_url = responseJSON['data_ajax_url'];
                if (typeof data_ajax_url != 'undefined')
                {
                    $.ajax(
                        {
                            type: "GET",
                            url: data_ajax_url,
                            beforeSend: AjaxBegin(),
                            success: function (html)
                            {
                                Debug.Log(data_ajax_target);
                                //== #partial_f_Picture

                                Debug.Log($(data_ajax_target).length);
                                //== 0
                                $(data_ajax_target).html(html);
                            }
                        });
                }
            }
        });});} //moved braces up to prevent code from being in a scroll window.

1 个答案:

答案 0 :(得分:2)

<div id="#partial_f_Picture">更改为<div id="partial_f_Picture">。选择器中的#表示“它是一个id”(与.相对,这意味着“它是一个类”,缺少前缀,这意味着“它是一个dom标签”({{1} },p等))。