2010-02-06 62 views
1

我想在jQuery中得到一個隨機單元格,1-16之間,我有隨機數字代碼在Javascript中。現在我想要做的就是使用該隨機數,並使表的指針指向該隨機數?這將如何完成。這是我的隨機數字代碼。從jQuery的表中獲取隨機單元格

Math.floor(Math.random() * 16) 

    <table id="board" border="3" bgcolor="black" align="center"> 
     <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     </tr> 
     <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     </tr> 
     <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     </tr> 
     <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     </tr> 
    </table> 
    <input type="button" value="Shuffle" onclick="shuffle()"/> 
    </body> 
</html> 

我其實應該說是參考,我想通過使用JavaScript中的隨機數生成器代碼

$('board tr td') 

這應該給我進入某種方式得到一個隨機單元格的引用表

+3

請花時間來提供更多的信息,如表的代碼,你想要完成的任務的解釋。我不知道「製作表格的指針」是什麼意思。 – user113716 2010-02-06 00:58:29

+1

爲了防止其他人提到這一點,您使用這個jQuery選擇器'$('#board')'將目標設置爲「board」。你上面的代碼缺少哈希#。 – Mottie 2010-02-06 01:47:11

回答

2

甲jQuery的特定的解決方案是分配一個點擊事件在JavaScript的按鈕,並把FiveTools代碼溶液那裏。

<input type="button" value="Shuffle" id="theButton"/> 

的javascript:

$('document').ready(function() { 

$('#theButton').click(function() { 

    // Stores a random number from 0 to 15 
    var randomNum = Math.floor(Math.random() * 16); 

    // This brings you back up to a range of 1 to 16 
    var actualNum = randomNum + 1; 

    // Grabs and holds the table cell for that number 
    // Example: number 10 would be third row, second column 
    var randomtd = $('#board td').eq(randomNum); 

    // Calculate and store which row 
    // by dividing the generated number by the number of rows, and rounding up 
    var whichRow = Math.ceil(actualNum/4); 

    // Calculate and store which column 
    // by using modulo to find the remainder of the number divided by the rows 
    // If the modulo result is '0', then set it to '4' 
    var whichColumn = (actualNum % 4) == 0 ? 4 : (actualNum % 4); 

    // Display results in an alert 
    alert('theNumber: ' + actualNum + ' row: ' + whichRow + ' column: ' + whichColumn); 

    // For fun, and to show that you have the td stored 
    // Display the number in the correct td 
    // and set the text color to grey, since the table is black 
    randomtd.text(actualNum).css({color:'#DDD'}); 
}); 

}); 
+1

我認爲不是使用'16',而是用'​​'的數字代替'var randomNum = Math.floor(Math.random()* $('td').length) '這樣你可以改變桌子的大小,而不必更改代碼 – Mottie 2010-02-06 01:35:03

+0

@fudgey - 好主意。使其變得靈活。我會添加該選項。 – user113716 2010-02-06 01:38:08

+0

它確實給出了隨機結果,但我想要的是一種獲取隨機小區的方法,並且也獲得了隨機小區的位置。假設我隨機得到數字10,那麼我也想到10號單元格。順便說一句我正在與一張4x4桌子一起工作。 – Zerobu 2010-02-06 03:56:38

1

var randomNum = Math.floor(Math.random()* 16);
變種randomtd = $( 'TD')當量(randomNum - 1)

相關問題