每次我在图10中运行页面时,JavaScript调试器窗口出现并显示“样式”的未定义错误。我尝试使用JavaScript方式而不是jQuery。
这证明是麻烦......
var displayPackets = document.getElementById('pnl_emailFtp');
// set style to 'display:none;'
displayPackets.style.display = "none";
var smlPkt = document.getElementById('small-packet');
var lrgPkt = document.getElementById('large-packet');
// Shows the 'panel' where the 'small/Large' pkts are.
var radButton = document.getElementsByName('secureData');
// Check radio button has been clicked and show
// Small/Large packet boxes.
if (radButton.checked = true) {
displayPackets.style.display = "block";
} else {
displayPackets.style.display = "none";
}
我做错了吗?
答案 0 :(得分:1)
可能错误在
var displayPackets = document.getElementById('pnl_emailFtp');
如果由于某种原因displayPackets
不是DOM元素,您可能会收到您评论的错误。
如果文档中存在pnl_emailFtp
id元素,则可能是在加载或准备好文档DOM之前尝试检索对它的引用。在这种情况下,您可以尝试:
window.load = function(){ ... }
好像你正在使用:
使用内置alert()
功能。它会停止JavaScript执行,直到它被接受,因此它可以用作断点。
程序如下:
在脚本的第一行放置alert( 'ok' );
(或者至少在您认为有问题的行之上)。
alert( 'ok' );
var displayPackets = document.getElementById('pnl_emailFtp');
加载您的页面...
如果显示提醒,请将其放到下一行并重复 2
var displayPackets = document.getElementById('pnl_emailFtp');
alert( 'ok' );
displayPackets.style.display = "none";
如果未显示提醒,请将其放到上一行并重复 2 。
当您点击 2.1 且 2.2 无限重复的行时,您会得到导致问题的代码行。
答案 1 :(得分:1)
尝试将代码放在window.onload
处理函数中,如下所示:
window.onload = function () {
// Your code comes here
};
或者在结束body
标记之前放置脚本。
当您在jQuery的$(document).ready(...)
中使用此片段时,执行会延迟,直到所有DOM元素都可用。在解析期间执行head
中的代码时,body
及其内容尚不存在。