2

所以,我是 HTML 的初学者,我想知道是否可以在下面做我想做的事情。它正在崩溃,但我不确定唯一的原因是我的语法,还是根本不可能。

函数声明:

<!-- Copyright 2005, Sandeep Gangadharan -->
<!-- For more free scripts go to http://www.sivamdesign.com/scripts/ -->

if (document.getElementById) {
document.writeln('<style type="text/css"><!--')
document.writeln('.texter {display:none} @media print {.texter {display:block;}}')
document.writeln('//--></style>') }

function close(theID) {
if (document.getElementById(theID).style.display == "block") { document.getElementById(theID).style.display = "none" } }

function open(theID) {
if (document.getElementById(theID).style.display == "block") { document.getElementById(theID).style.display = "none" }
else { document.getElementById(theID).style.display = "block" } }

// -->

</script>
</head>

函数的使用:

<table>
<tbody>
<tr>
<td colspan="2" rowspan="0">
<div>•&amp;nbsp;<a href="/tallwalls/" target="_blank"><b>Tall Walls Sizer</b></a></div>
<p onClick="open('a4'), close('a1','a2','a3')" style="cursor:hand; cursor:pointer">       
<span style="color: #808080;">[Click here for more information]</span></p>
</td>
</tr>
<tr id="a4" class="texter">
<td style="padding:0px;width:210px;"><a href="/tallwalls/" target="_blank" title="Tall Walls Sizer"><img src="/images/logos/tallWALLS.gif" alt="" width="206" height="41"/></a></td>
<td>
<div>DESCRIPTION</div>
</td>
</tr>
</tbody>
</table>

主要是onClick="open('a4'), close('a1','a2','a3')"是我不确定这是否是正确的语法。


编辑:忘了提,其他 id 确实存在。它们由相同的图案 x4 组成


提前致谢,

凯迪安爵士

4

3 回答 3

2

Javascript 行以 ; 结尾 所以你需要先使用open('a4');

此外,您只为一个参数定义了 close() ,因此您需要拆分close('a1','a2','a3')close('a1'); close('a2'); close('a3');

如果您是 HTML 新手,我建议您阅读一下 jQuery。它的 hide() 和 show() 方法将使您尝试做的事情变得非常容易。

于 2012-08-01T20:05:05.437 回答
1

试试这个 - 你需要使用分号来分隔函数调用。请参阅有关使用分号的相关 SO 帖子

<p onClick="open('a4');close('a1');close('a2');close('a3'); return false;"/>
于 2012-08-01T19:56:36.323 回答
1

让我们考虑您的方法 close(theID):

function close(theID) {
if (document.getElementById(theID).style.display == "block") { document.getElementById(theID).style.display = "none" } }

此函数仅接受一个参数,并且您尝试对多个参数应用 close。在这种情况下,代码看起来像

function close(){
   if(arguments.length > 0 ){
     for(var i=0; i<arguments.length; i++){
        closeMe(arguments[i]);
     }
   }
}

function closeMe(id){
 if (document.getElementById(theID).style.display == "block") {
    document.getElementById(theID).style.display = "none" 
 } 
}

同样你的开放功能。

您的 onClick 处理程序存在严重问题

onClick="打开('a4'), 关闭('a1','a2','a3')"

应该

onClick ="open('a4'); close('a1', 'a2', 'a3');"
于 2012-08-01T20:02:39.660 回答