javascript - 已在控制台日志上打印的 undefined variable

标签 javascript jquery each

OnClick 我想要弹出一个对话框按钮,该对话框有一个 uniqueId 并在其中有一个 iframe。这是我的代码:

$( ".insertDetailsDiv" ).click(function() {
        var idName = $(this).attr("id");
        var idNameBase = idName.replace('DetailsButton', '');

        var  iframeSRC = idNameBase+".php";
        $("<div class='idNameDialogDivClass'></div>").dialog();
        $(".idNameDialogDivClass").each(function() {
            $(this).uniqueId();
            var  idNameDialogDiv = $(this).attr("id");
            console.log(idNameDialogDiv);
        });

        $("<iframe></iframe>", { 
                id: idNameBase, 
                src: iframeSRC
        }).appendTo('#'+idNameDialogDiv);
});

但是我的控制台日志(chrome)输出

ui-id-6
Uncaught ReferenceError: idNameDialogDiv is not defined

我不明白,控制台日志输出变量,然后 javascript 无法识别该变量。

最佳答案

尝试在 .each() 函数之外声明变量 idNameDialogDiv

$( ".insertDetailsDiv" ).click(function() {
        var idName = $(this).attr("id");
        var idNameBase = idName.replace('DetailsButton', '');
        var idNameDialogDiv = null;  // Declare here.

        var  iframeSRC = idNameBase+".php";
        $("<div class='idNameDialogDivClass'></div>").dialog();
        $(".idNameDialogDivClass").each(function() {
            $(this).uniqueId();
            idNameDialogDiv = $(this).attr("id");
            console.log(idNameDialogDiv);
        });

        $("<iframe></iframe>", { 
                id: idNameBase, 
                src: iframeSRC
        }).appendTo('#'+idNameDialogDiv);  // This was the place where the error was caused
});

关于javascript - 已在控制台日志上打印的 undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24948497/

相关文章:

javascript - JQUERY 在多个无序列表中选择第 n 个列表元素

javascript - 允许 JavaScript 闭包从父级作用域继承变量

javascript - 在包装元素上创建事件

jQuery:如何使用逗号作为 .each 循环的分隔符

javascript - 将每个循环连接到另一个循环中

Javascript "for(i in array)"将 i 设置为最后一个索引

javascript - 如何反转 d3 的线性比例?

jquery - 使用 jQuery 插件时,Angular 应用程序无法编译(Foundation 6 Accordion )

javascript - 按属性对 Div 进行排序 - asc 或 desc

javascript - jQuery .each() 函数通过索引访问其他选择器