Javascript Can';t访问documentReady()中的div

Javascript Can';t访问documentReady()中的div,javascript,jquery,css,document-ready,Javascript,Jquery,Css,Document Ready,所以我有一个从common.js文件动态加载的灯箱。(我一直在使用的遗留代码) 我在common.js文件中有这个函数 //dynamically load a light box to he page // @src - is the URL to load in the lightbox // @hidePDFLink - is a boolean value indicating if PDF link should be hidden // @imagePath - is the ima

所以我有一个从common.js文件动态加载的灯箱。(我一直在使用的遗留代码)

我在common.js文件中有这个函数

//dynamically load a light box to he page
// @src - is the URL to load in the lightbox
// @hidePDFLink - is a boolean value indicating if PDF link should be hidden
// @imagePath - is the image path for the pdf link
function loadLightBox(src, options) {
    options = $.extend({ pdfSrc: null, width: Math.min(820, $(window).width() - 20), height: $(window).height() * 0.90, title: null }, options);

//LOAD IT
if ($("#lightBox").length == 0) {//create light box if it doesn't exist
    $("body", $(document)).append($('<div id="lightBoxOverlay" /><div id="lightBox"><div id="lightBoxToolbar"><div id="lightBoxTitle" /><div id="lightBoxCloseLink" title="Close" /><div id="lightBoxPrintPDFLink" title="Create PDF">Create PDF</div></div><iframe id="lightBoxFrame" scrolling="auto" frameborder="0" onload="showWaitCursor(false)" /><div id="lightBoxContent" /></div>'));

    $('#lightBox')[0].hideFunction = (options.removeOnClose == true) ?
        function () {
            $(document).unbind("keyup", $('#lightBox')[0].escapeFunction);
            $('#lightBox, #lightBoxOverlay').empty().remove();
            showWaitCursor(false);
            return false;
        } :
        function () {
            $("#lightBox").hide();
            $("#lightBoxOverlay").hide();
            $("IFRAME", "#lightBox").attr("src", "about:blank");
            $('#lightBoxContent').html('');
            $(document).unbind("keyup", $('#lightBox')[0].escapeFunction);
            showWaitCursor(false);
            return false;
        }

    $('#lightBox')[0].escapeFunction = function (event) {
        if (event.keyCode == 27)
            $('#lightBox')[0].hideFunction();
    }

    $("#lightBoxCloseLink").click($('#lightBox')[0].hideFunction);
    $("#lightBoxPrintPDFLink").click(function () {
        window.document.location = $(this).attr('pdfSrc');
        return false;
    });

    // apply bgiframe if available
    if ($.fn.bgiframe)
        $('#lightBox').bgiframe();
}
setLightBoxOptions(options);

//set source
if (!(options.srcContent)) {
    showWaitCursor(true);
    $("#lightBoxFrame").attr("src", src);
}
此函数调用上述函数:

var url = 'aUrl/SomeControl.ascx';
loadLightBox(url, { width: 640, height: 575, title:'TestTitle' });
这将导致下面的灯箱加载:

我的问题是,我无法设置/更改文档中lightbox的标题。 在下面的代码中,documentready函数位于lightbox加载的控件中

-第一个警报返回空值,第二个警报返回空值

alert(document.getElementById('lightBoxTitle'));
alert($('#lightBoxTitle').text());
$('#lightBoxTitle').text('IM A NEW TITLE THAT SHOULD BE SET');
我使用了chrome的开发工具,验证了document ready是否在common.js中运行,然后document ready是否在lightbox中加载的控件中运行

我知道我可以获取标题并将其作为loadLightbox函数中的参数传入,但我正在尝试防止额外的加载,我希望它的样式与现在的样式不同


谢谢

在调用
loadLightBox()
之前,您无法访问div,因为它在DOM中不存在

由于您的lightbox正在iframe中加载,因此您应该能够从
SomeControl.ascx中的
document.ready
函数执行类似操作:


$(“#lightBoxTitle”,top.document).text(“我的新标题”)

div应该在DOM中,因为我通过单击导致将div添加到DOM的链接从当前页面调用loadLightBox()。然后加载.ascx控件(在lightbox中),并调用其documentready来检查DOM。我在loadLightBox和.ascx控件的文档准备中有断点。我同意它不在DOM bc警报($(“#lightBoxTitle”).text()中;我会找到的。我不明白为什么它不在那里。@Brad8118您的lightbox内容正在添加到
iframe
中,它将把您的选择器的范围扩展到该
iframe
节点。您需要使用
#lightBoxTitle
选择器访问顶级文档。我添加了一些代码作为示例。
var url = 'aUrl/SomeControl.ascx';
loadLightBox(url, { width: 640, height: 575, title:'TestTitle' });
alert(document.getElementById('lightBoxTitle'));
alert($('#lightBoxTitle').text());
$('#lightBoxTitle').text('IM A NEW TITLE THAT SHOULD BE SET');