Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';加载html时找不到html标签_Javascript_Html_Load - Fatal编程技术网

Javascript Can';加载html时找不到html标签

Javascript Can';加载html时找不到html标签,javascript,html,load,Javascript,Html,Load,我可以加载一个简单的html文件,但当我试图在加载的html中查找元素时,javascript无法找到该元素。在IE10中,显示加载的html,但标签不变。在Chrome中,加载不起作用。我是否加载错误,是否有方法获取对元素的引用 progress.html中只有一行,即id为“”progressLabel“的标签和“加载…”的内部文本 我正在创建一个模式对话框,然后加载并尝试获取progresslabel: $("#progressbarDiv").dialog({ resizable

我可以加载一个简单的html文件,但当我试图在加载的html中查找元素时,javascript无法找到该元素。在IE10中,显示加载的html,但标签不变。在Chrome中,加载不起作用。我是否加载错误,是否有方法获取对元素的引用

progress.html中只有一行,即id为“
”progressLabel“
的标签和“
加载…
”的内部文本

我正在创建一个模式对话框,然后加载并尝试获取progresslabel:

$("#progressbarDiv").dialog({
    resizable: false,
    height: 240,
    width: 500,
    modal: true,
    closeOnEscape: false,
    //disabled: true,
    open: function (event, ui) {
        // Hide close button 
        $(this).parent().children().children(".ui-dialog-titlebar-close").hide();
    },
    buttons: {
        "Ok": {
            text: "OK",
            id: "myOKButton",
            click: function () {
                $(this).dialog("close");
            }
        } 
    }
});
$('#progressbarDiv').load('progress.html');
var testThis = $('#progressLabel');
testThis.text = "...Synchronizing data, please wait...";

在尝试访问元素之前,请等待整个页面已加载。

在尝试访问元素之前,请等待整个页面已加载。

要访问AJAX加载元素中的HTML,需要在回调函数中执行Javascript

$('#progressbarDiv').load('progress.html',function(){
    // Your script was setting $.text = , but it's a function.
    $('#progressLabel').text("...Synchronizing data, please wait...");
});
$.load(url,回调)
是异步的,因此当
$.load
返回时不会加载内容。
回调
是您如何知道
$的。load
已完成其处理

您可以使用
$('#progressLabel').text(“…正在同步数据,请稍候…”)脚本中的任意位置。如果这是一个足够小的项目,它是好的。如果您关心维护,那么应该构建代码的体系结构,这样就不需要从任何地方全局访问该div。至少创建一个可以调用的函数,也许它可以按需加载

/**
 * A simple but slightly better way to set the text from anywhere. 
 * Lazily fetches the progress HTML.
 */
function setProgressString(str) {
    function setText() {
        $('#progressLabel').text(str);
    }

    if ($('#progressLabel').length === 0) {
        $('#progressbarDiv').load('progress.html', setText);
    } else {
        setText();
    }    
}

// Use anytime
setProgressString('...Synchronizing data, please wait...')';

要访问AJAX加载元素中的HTML,需要在回调函数中执行Javascript

$('#progressbarDiv').load('progress.html',function(){
    // Your script was setting $.text = , but it's a function.
    $('#progressLabel').text("...Synchronizing data, please wait...");
});
$.load(url,回调)
是异步的,因此当
$.load
返回时不会加载内容。
回调
是您如何知道
$的。load
已完成其处理

您可以使用
$('#progressLabel').text(“…正在同步数据,请稍候…”)脚本中的任意位置。如果这是一个足够小的项目,它是好的。如果您关心维护,那么应该构建代码的体系结构,这样就不需要从任何地方全局访问该div。至少创建一个可以调用的函数,也许它可以按需加载

/**
 * A simple but slightly better way to set the text from anywhere. 
 * Lazily fetches the progress HTML.
 */
function setProgressString(str) {
    function setText() {
        $('#progressLabel').text(str);
    }

    if ($('#progressLabel').length === 0) {
        $('#progressbarDiv').load('progress.html', setText);
    } else {
        setText();
    }    
}

// Use anytime
setProgressString('...Synchronizing data, please wait...')';

您没有提到您是否正在使用jQuery或某个库。可能该库没有加载?我们是否应该假设它包装在
.ready()
容器中?另外,您可以发布一些HTML吗?
$(this).parent().children().children(“.ui对话框标题栏关闭”)
可以通过编写
$(this.parent().find(“.ui对话框标题栏关闭”)
来进行清理,除非您的子项中有多个对话框标题栏关闭…
load()
将以异步方式运行,因此如果它位于
progressbarDiv
的内部,它可能不会在加载后立即出现。此外,您还需要将对话框的内容容器部分作为目标,或者您正在清除
progressbarDiv
@scrapedcola的对话框内容。谢谢您对内容容器的介绍。您没有提到您是否使用jQuery或某个库。可能该库没有加载?我们是否应该假设它包装在
.ready()
容器中?另外,您可以发布一些HTML吗?
$(this).parent().children().children(“.ui对话框标题栏关闭”)
可以通过编写
$(this.parent().find(“.ui对话框标题栏关闭”)
来进行清理,除非您的子项中有多个对话框标题栏关闭…
load()
将以异步方式运行,因此如果它位于
progressbarDiv
的内部,它可能不会在加载后立即出现。另外,您需要将对话框的内容容器部分作为目标,或者您只是在清除
progressbarDiv
@scrapedcola的对话框内容。谢谢您对内容容器的介绍。您的意思是使用
$.ready()
还是
$.ajax
回调?显示代码将改善回答。在加载初始页面后,单击按钮以执行上述对话框。我假设html在加载过程中添加到DOM中,但让我检查一下。您的意思是使用
$.ready()
还是
$.ajax
回调?显示代码将改善回答。在加载初始页面后,单击按钮以执行上述对话框。我假设在加载过程中html被添加到DOM中,但让我检查一下。我认为
#progressLabel
不在加载过程中data@Ian“…当我试图在加载的html中找到一个元素时,”@JuanMendes你说得很对,我不确定我怎么会错过它。哈哈,很抱歉,“如果它在回调函数之外,jQuery/Javascript的原始运行将看不到它”并不能真正解释问题,或者可以更清楚。事实上,
$.load
是异步的,因此当
$.load
完成时不会加载内容,回调是您如何知道
$的。load
已完成其调用processing@Vangel您最近提出的问题不像不了解
$异步性质的人那样常见。加载
请不要在回答中添加随机注释。我不认为
#progressLabel
已加载data@Ian "... 当我试图在加载的html中找到一个元素时,“@JuanMendes You's very right,我不确定我怎么会错过它。哈哈,对不起”,如果它在回调函数之外,jQuery/Javascript的原始运行将看不到它“这并不能真正解释问题,或者可能更清楚。事实上,
$.load
是异步的,因此当
$.load
完成时不会加载内容,回调是您如何知道
$的。load
已完成其调用processing@Vangel您最近的问题不像不了解
$异步性质的人那样常见。加载
请不要在答案中添加随机注释