我确信这个解决方案非常明显,但我花了一个小时的时间,所以非常感谢任何帮助!
以下javascript旨在使div可见,如果变量loggedin =“true”则另一个div不可见:
/* 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函数?
答案 0 :(得分:8)
将=
更改为==
,请查看此article(javascript运算符)
if (loggedin=="true")
.....
if (owned=="true")
答案 1 :(得分:3)
它应该是if (a == b)
而不是if (a = b)
:后者会将b
的值分配给变量a
(然后使用b
的值来确定是否运行if条件,在你的例子中总是如此)。
答案 2 :(得分:2)
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();
}
答案 3 :(得分:2)
我将您的代码复制到一个文本文件中并尝试了 - 它遇到了问题。
我把javascript放在html上面的脚本标签中。
<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>
答案 4 :(得分:2)
为我工作( 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"
vs true
)<script type="text/javascript">
)<head>
标记内(它也是标准)答案 5 :(得分:0)
而不是loggedin =“true”写为loggedin ==“true”
答案 6 :(得分:0)
它真的是用javascript隐藏内容的新手。但是如果你想要这样做,我会建议删除内容。
使用
document.getElementById('summary').innerHTML = '';
而不是
document.getElementById('summary').style.display = 'none';