Javascript 控制台日志上已打印的未定义变量
单击我希望弹出一个对话框按钮,对话框将有一个唯一的ID,并在其中有一个iframe。这是我的代码:Javascript 控制台日志上已打印的未定义变量,javascript,jquery,each,Javascript,Jquery,Each,单击我希望弹出一个对话框按钮,对话框将有一个唯一的ID,并在其中有一个iframe。这是我的代码: $( ".insertDetailsDiv" ).click(function() { var idName = $(this).attr("id"); var idNameBase = idName.replace('DetailsButton', ''); var iframeSRC = idNameBase+".php";
$( ".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);
});
我不明白,控制台日志输出变量,然后javascript无法识别变量 尝试在
函数的外部声明变量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
});
$(“.insertDetailsDiv”)。单击(函数(){
var idName=$(this.attr(“id”);
var idNameBase=idName.replace('DetailsButton','');
var idNameDialogDiv=null;//在此处声明。
var iframeSRC=idNameBase+“.php”;
$(“”)。对话框();
$(“.idNameDialogDivClass”)。每个(函数(){
$(this.uniqueId();
idNameDialogDiv=$(this.attr(“id”);
console.log(idNameDialogDiv);
});
$("", {
id:idNameBase,
src:iframeSRC
}).appendTo(“#”+idNameDialogDiv);//这是导致错误的地方
});
idNameDialogDiv是您在$范围内定义的变量。每个
函数。在该街区外不可用
$(".idNameDialogDivClass").each(function() { // <- function declaration
$(this).uniqueId();
var idNameDialogDiv = $(this).attr("id"); // <- variable declaration
console.log(idNameDialogDiv);
});
$(“.idNameDialogDivClass”).each(函数(){//可能在本部分中未定义::.appendTo('#'+idNameDialogDiv);是的,但是在创建之后不是被解析了吗?@Gamemorize将var idnamedialdiodiv
移出每个函数。检查以确保类idnamedialdiodivclass
中确实有元素。再次感谢,我接受了更快/更全面的答案,尽管如此,干杯!@Gamemorize:D很高兴为h大家好!有什么让我的代码总体上更好的建议吗?最糟糕的部分是什么?@GamemorizeidNameDialogDiv=$(this.attr(“id”);
代码中的每一个都让我很恼火..因为id是一个独特的东西,我们不需要这样写代码...)
$(".idNameDialogDivClass").each(function() { // <- function declaration
$(this).uniqueId();
var idNameDialogDiv = $(this).attr("id"); // <- variable declaration
console.log(idNameDialogDiv);
});