javascript - 用js选择随机表格单元格

标签 javascript html

首先我有一个表单,有2个board字段和myNumb,board是控制表格大小的数字。 myNumb 是应随机选择的单元格数量。

我正在尝试使用 JavaScript 选择随机表格单元格。我有一个整数变量 myNumb,我将在其中给出应选择多少个随机单元格。在选定的单元格中,我想输入 1,其余的输入 0。我已经构建了表格的结构,但不知道如何选择随机单元格。任何想法将不胜感激。

function tableMatrix () {
    //taking values from the form
    var board = document.forms["myForm"]["board"].value;;
    var myNumb = document.forms["myForm"]["myNumb"].value;
    var zero = 0;
    var one = 1;

    //finding myContainer
    var myContainer = document.getElementById('myContainer');
    myContainer.innerHTML = '';
    //creating element <table>
    var table = document.createElement('table');

    table.style.width = '100%';
    table.setAttribute('border', '1');

    //creating element <tbody>
    var tbody = document.createElement('tbody');

    //cells creation
    for (var i = 0; i < board; i++) {
        //creating <tr> element
        var tr = document.createElement('tr');
        for (var j = 0; j < board; j++) {
            //creating <td> element
            var td = document.createElement('td');
            //put <td> after <tr> element
            tr.appendChild(td);
            td.setAttribute('class', 'tblCells');

            var x = 0;
            if (x <= myNumb) {
                var randomCounter = Math.floor(Math.random() * 9);
                x += randomCounter;
                td.innerHTML = '<span>'+ one +'</span>';
            } else {
                td.innerHTML = '<span>'+ zero +'</span>';
            }
        }
        //put <tr> after <tbody> element
        tbody.appendChild(tr);
    }
    //put <tbody> after <table> element
    table.appendChild(tbody);
    //put <table> after <div> element
    myContainer.appendChild(table);

}

我还创建了一个 JSFiddle here如果有帮助的话

最佳答案

这是生成您想要的模式的脚本:

 function shuffle(array) {
  var currentIndex = array.length, temporaryValue, randomIndex ;

  // While there remain elements to shuffle...
  while (0 !== currentIndex) {

    // Pick a remaining element...
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;

    // And swap it with the current element.
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }

  return array;
}
  function fillCells(value, len) {
    var arr = [];
    for (var i = 0; i < len; i++) { if(i<value){
      arr.push(1);}else{arr.push(0);}
    }
    shuffle(arr);
    return arr;
  }

    function tableMatrix () {
  //taking values from the form
    var board = document.forms["myForm"]["board"].value;;
    var myNumb = document.forms["myForm"]["myNumb"].value;
    var zero = 0;
    var one = 1;
    var totalCell = board*board;
   var cellValues =  fillCells(myNumb, totalCell)
//finding myContainer
var myContainer = document.getElementById('myContainer');
    myContainer.innerHTML = '';
//creating element <table>
  var table = document.createElement('table');

  table.style.width = '100%';
  table.setAttribute('border', '1');

  //creating element <tbody>
  var tbody = document.createElement('tbody');

  //generate random number

  var x = 0;
  //cells creation
  for (var i = 0; i < board; i++) {
    //creating <tr> element
      var tr = document.createElement('tr');
      for (var j = 0; j < board; j++) {
        //creating <td> element
            var td = document.createElement('td');
            //put <td> after <tr> element
            tr.appendChild(td);
            td.setAttribute('class', 'tblCells');

            td.innerHTML = '<span>'+cellValues[x]+'</span>';
            x++;

      }
      //put <tr> after <tbody> element
      tbody.appendChild(tr);
  }
  //put <tbody> after <table> element
  table.appendChild(tbody);
  //put <table> after <div> element
  myContainer.appendChild(table);
 } 

这是Bin

关于javascript - 用js选择随机表格单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34308247/

相关文章:

javascript - 将 Javascript 变量发送到 .css({transform : translate (var, var)})

javascript - 如何在后台添加音频,如谷歌追踪圣诞老人

html - 如何添加一个链接,将事件从 safari 添加到您的 iPhone 日历?

javascript - 从 iframe 显示弹出窗口并调暗背景,包括父页面

jquery - 加载图像并调整其宽度

javascript - 如何在 sublime text 2 的所有项目中搜索文本

javascript - 在 JavaScript 中绘制直线

javascript - 根据多个选中的单选按钮显示特定的 div

html - 样式输入轮廓边框 - CSS3

javascript - 在动态加载的 html 中使用 Angular Controller