简单的Javascript,如果语句问题
问题描述:
我敢肯定,解决方案显而易见,但我花了一个小时,所以非常感谢任何帮助!简单的Javascript,如果语句问题
以下JavaScript是为了让一个div visiable和另一个DIV无形如果变量的loggedIn = “真”:
/* Javascript */
function showArticle()
{
document.getElementById('full').style.display = 'block';
document.getElementById('summary').style.display = 'none';
}
var loggedin="true";
var owned="true";
if (loggedin="true")
{
document.write("Logged In");
}
if (owned="true")
{
showArticle();
}
。
<!-- HTML -->
<div id="summary">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>
<div id="full" style="display:none;">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur.
<div>
我是否正确地认为这个问题与我的showArticle函数的调用?
答
使用
document.getElementById('summary').innerHTML = '';
,而不是我复制你的代码到一个文本文件,并试图它 - 它有问题。
我把javascript放在html上面的script标签中。
<html>
<body>
<script>
function showArticle()
{
document.getElementById('full').style.display = 'block';
document.getElementById('summary').style.display = 'none';
}
var loggedin="true";
var owned="true";
if (loggedin="true")
{
document.write("Logged In");
}
if (owned="true")
{
showArticle();
}
</script>
<!-- HTML -->
<div id="summary">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>
<div id="full" style="display:none;">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur.
<div>
</body>
</html>
失败的原因时,JavaScript的运行div标签还没有被添加到DOM,所以的getElementById返回null。我通过在Firebug/Firefox中使用javascript调试发现了这一点。
如果我将javascript移到了html之后,它就会起作用 - 因为DOM随后会加载这些项目。
<html>
<body>
<!-- HTML -->
<div id="summary">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>
<div id="full" style="display:none;">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur.
<div>
<script>
function showArticle()
{
document.getElementById('full').style.display = 'block';
document.getElementById('summary').style.display = 'none';
}
var loggedin="true";
var owned="true";
if (loggedin="true")
{
document.write("Logged In");
}
if (owned="true")
{
showArticle();
}
</script>
</body>
</html>
答
它应该是if (a == b)
,而不是if (a = b)
:后者分配的b
到可变a
的值(和然后使用的b
值以确定是否运行if条件,在您的示例中始终是这种情况)。
答
而不是登录=“真”写为登录==“真”
答
它真的新手隐藏JavaScript的内容。但是,如果你想要这样做,我会建议擦除内容。的
document.getElementById('summary').style.display = 'none';
答
function showArticle()
{
document.getElementById('full').style.display = 'block';
document.getElementById('summary').style.display = 'none';
}
var loggedin = true;
var owned = true;
if (loggedin == true)
{
alert("Logged In");
}
if (owned == true)
{
showArticle();
}
答
为我工作(UPD ):
<html>
<head>
<script type="text/javascript">
window.onload = function() {
function showArticle()
{
document.getElementById('full').style.display = 'block';
document.getElementById('summary').style.display = 'none';
}
var loggedin = true, owned = true;
if (loggedin == true)
{
document.write("Logged In");
}
if (owned == true)
{
showArticle();
}
}
</script>
</head>
<body>
<!-- HTML -->
<div id="summary">moo</div>
<div id="full" style="display:none;">foo</div>
</body>
</html>
那么,什么是错的?
- 未封闭
<div>
(第二个) - 拨款,而不是能比较(
=
而不是==
) - 字符串,而不是布尔(
"true"
VStrue
) - 脚本没有类型(你应该总是设置它只是一个标准:
<script type="text/javascript">
) - 脚本应该在
<head>
标签内(这也是一个标准) - 您试图访问对象时,他们尚未加载
你* *所知,任何人以最少的技术知识将能够看到被记录的articlewithout? – 2011-01-25 08:31:51
如果这是JavaScript为什么被标记为[php],[mysql],[project-planning]和[specifications] ...? – BoltClock 2011-01-25 08:32:27
Victor,我知道 - 这个系统只是一个展示功能的概念/原型的证明:) – Jamie 2011-01-25 08:35:37