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が存在することを言及するのを忘れました。この同じ柄×4で構成されています


前もって感謝します、

ケイディアン卿

4

3 に答える 3

2

JavaScript の行は ; で終わります。したがって、最初に使用する必要がありますopen('a4');

close('a1','a2','a3')また、1 つの引数に対して close() しか定義していないため、次のように分割する必要があります。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" } }

この関数は引数を 1 つしか受け付けず、複数の引数に 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" 
 } 
}

同様に、あなたの open 関数。

onClick ハンドラに深刻な問題がある

onClick="open('a4'), close('a1','a2','a3')"

する必要があります

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