需要一些帮助。看起来很简单但我必须遗漏一些东西。我正在尝试在单击锚标记时检索一些id值。出于某种原因,我没有得到所有的价值观。我认为与数据格式存在冲突。这是代码
jquery的
已编辑以反映Jai的推荐 - 同样的结果
$j(document).ready(function() {
// find value of id and name
$j(".dig").on("click", function(e) {
var scheduleID = ($j(this).attr('id'));
console.log(scheduleID);
var scheduleTime = ($j(this).closest("div").attr('id'));
console.log(scheduleTime);
var scheduleDay = ($j(this).closest("li").attr('id'));
console.log(scheduleDay);
var day, times;
$j( "#show-form" ).dialog( "open" );
$j("#scheduleID").val(scheduleID);
$j("#scheduleTime").val(scheduleTime);
$j("#scheduleDay").val(scheduleDay);
day = $j("#scheduleDay").val();
times = $j("#scheduleTime").val();
$j('#scheduleWarning').html('<p>NOTE: if you upload an MP3 file for your episode below, it will be put into the ' + day + ' ' + times + ' programming slot. Be sure to select ' + day + ' ' + times + ' to sync this episode with your audio file</p>');
});
HTML
<li id="Monday">
<div id="#x#:00" class="time">
<a id="#ID#" class="icon icon-primary material-icons-backup icon-sm icon-backup dig" style="cursor:pointer" title="upload show"></a> Monday #x#:00
</div>
</li>
所以...控制台显示html中的所有三个id,但#scheduleWarning html输出没有显示&#34; times&#34; var值。它说它是 undefined 。
变量#x#是Coldfusion从数据库查询中生成的索引值。产生的一个例子如下。
<div id="21:00" class="time">
任何想法为什么&#34;时代&#34; var出现 undefined ?
我的调试结果只是一点点。如果我改变了
$j("#scheduleDay").val(scheduleDay);
到
$j("#scheduleDay").val(scheduleTime);
&#34; day&#34; var显示
的正确值var scheduleTime = ($j(this).closest("div").attr('id'));
我希望我没有让任何人感到困惑。
答案 0 :(得分:2)
恰好称为变量 悬挂 。声明任何变量时,javascript编译器会在顶部提升它。因此,在那个时间点,由于未设置,值为undefined
。相反,你可以这样做:
$j(document).ready(function() {
// find value of id and name
$j(".dig").on("click", function(e) {
var scheduleID = ($j(this).attr('id'));
var scheduleTime = ($j(this).closest("div").attr('id'));
var scheduleDay = ($j(this).closest("li").attr('id'));
var day, times; // <--------------------------------declare it here.
$j("#show-form").dialog("open");
$j("#scheduleID").val(scheduleID);
$j("#scheduleTime").val(scheduleTime);
$j("#scheduleDay").val(scheduleDay);
day = $j("#scheduleDay").val();
times = $j("#scheduleTime").val();
$j('#scheduleWarning').html('<p>NOTE: if you upload an MP3 file for your episode below, it will be put into the ' + day + ' ' + times + ' programming slot. Be sure to select ' + day + ' ' + times + ' to sync this episode with your audio file</p>');
});
});