[英]Tic-Tac-Toe clear method JavaScript
我明確的方法有什么問題:
function _Clear(){
for (var row = 0 ; row < tbl.rows.length; row++)
{
for (var cell = 0 ; cell < tbl.rows[row].cells.length; cell++)
{
tbl.rows[row].cells[cell].childNodes[0].src = null;
}
}
}
這是我的桌子:
tbl = document.getElementById("matrix");
當我單擊清除時,什么也沒發生?
更多html:
<body>
<table>
<tr>
<td width="100pt">
<label>Player 1:</label> <input type="radio" name="players" id="player1"checked="checked"/>
</td>
<td width="100pt">
<label>Player 2:</label> <input type="radio" name="players" id="player2"/>
</td>
<td width="100pt">
<input type="button" onclick="_Clear()" value="Clear"/>
</td>
</tr>
</table>
<table id="matrix" border="1">
<tr>
<td class="cellCSS">
<img alt="Click Here" class="imageCSS" onclick="imageClicked(this,0,0)"/>
</td>
<td class="cellCSS">
<img alt="Click Here" class="imageCSS" onclick="imageClicked(this,0,1)"/>
</td>
<td class="cellCSS">
<img alt="Click Here" class="imageCSS" onclick="imageClicked(this,0,2)"/>
</td>
</tr>
<tr>
<td class="cellCSS">
<img alt="Click Here" class="imageCSS" onclick="imageClicked(this,1,0)"/>
</td>
<td class="cellCSS">
<img alt="Click Here" class="imageCSS" onclick="imageClicked(this,1,1)"/>
</td>
<td class="cellCSS">
<img alt="Click Here" class="imageCSS" onclick="imageClicked(this,1,2)"/>
</td>
</tr>
<tr>
<td class="cellCSS">
<img alt="Click Here" class="imageCSS" onclick="imageClicked(this,2,0)"/>
</td>
<td class="cellCSS">
<img alt="Click Here" class="imageCSS" onclick="imageClicked(this,2,1)"/>
</td>
<td class="cellCSS">
<img alt="Click Here" class="imageCSS" onclick="imageClicked(this,2,2)"/>
</td>
</tr>
</table>
</body>
任何想法都會很棒
謝謝
我猜它與如何/何時聲明tbl
變量有關。
http://jsfiddle.net/userdude/wfEhM/
如果我在函數中聲明它而忽略var
,則它是在調用函數時可訪問的內部范圍變量:
function _Clear(){
tbl = document.getElementById("matrix");
for (var row = 0 ; row < tbl.rows.length; row++)
{
for (var cell = 0 ; cell < tbl.rows[row].cells.length; cell++)
{
// Note, I changed this line for testing, since I don't
// have the images.
alert(tbl.rows[row].cells[cell].childNodes[0].src);
}
}
}
我認為正在發生以下情況:a)您正在創建超出范圍的tbl
變量(例如,在另一個沒有var
關鍵字的函數中),或者b)您是在頁面加載期間或在matrix
元素之前創建的加載,而不是之后加載,以便您的tbl
指針不會指向任何地方。 也許您正在同時做這兩項。
檢查您的tbl
變量是否正常(使用警報或其他方法)。
閱讀您的代碼時,我假設您想在單擊清除按鈕時將src
屬性設置為空...我調試了您的代碼,並看到tbl.rows[row].cells[cell].childNodes[0]
為實際上是一個“ \\ n”字符(返回到行)。
為了避免這種情況,請改用tbl.rows[row].cells[cell].getChildren()[0]
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.