Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缩小Javascript并提高性能_Javascript_Jquery_Html_Refactoring - Fatal编程技术网

缩小Javascript并提高性能

缩小Javascript并提高性能,javascript,jquery,html,refactoring,Javascript,Jquery,Html,Refactoring,以下是我的html代码: <div class="board"> <table id="mastermind_table_one"> <tr id="one"> <td></td> <td></td> <td></td> <td></td> </tr> </table>

以下是我的html代码:

<div class="board">
  <table id="mastermind_table_one">
    <tr id="one">
      <td></td>
      <td></td>
      <td></td>
      <td></td>
   </tr>
 </table>

  <table id="mastermind_table_two">
    <tr id="two">
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
  </table>

  <table id="mastermind_table_three">
    <tr id="three">
      <td></td>
      <td></td>
      <td></td>
      <td></td>
   </tr>
  </table>
</div>
我正在制作一个游戏,当点击下一轮按钮时,所有空的tds都会填充一个随机背景色。还有更多的代码,比如setRandomColor函数,但它与问题无关

我一共有十张智囊团表格,这就是问题所在。我正在为每个表重复此代码。有人知道我如何只列出一次,然后在单击下一轮时转到下一个td吗

i、 e.上面的js代码是特定于mastermind_table_two的。在执行上一个td后,如何使其动态并移动到下一个td?

更新

我错了,一定是把你的问题读错了

试试这个,它有点粗糙,但可能适合你的需要

 $('.next_round').click(function () {
        $('[id^=mastermind_table_]').each(function () {
            $(this).addClass("notTreated");//a fake class just to control
        });
        var counter = setInterval(timer, 1000);

        function timer() {
            var currenttable;
            if ((currenttable = $(".notTreated").first()) == null) {
                clearInterval(counter);
                return;
            }

            $(currenttable).find('td').each(function () {
                $(this).css("background-color", setRandomColor);
            });
            //after treat this table, removes the fake class
            $(currenttable).removeClass("notTreated");
        }
    });

你可以使用选择器[id^=mastermind\u table],或者更好的是,如果它们相似,就给它们类,然后按类选择:如果你以结束div,你应该修复这个opps,对不起。我发了一封信,但发错了。谢谢你的批改。我刚试过这个,看起来它一次就填满了所有的10行。我希望只填写一行,然后当您单击下一轮时,它会填写下一行,等等。您知道这是否可行吗???谢谢Silvio。我刚试过这个,看起来它一次就填满了所有的10行。我希望只填写一行,然后当你单击下一轮时,它会填写下一行,等等。你知道这是否可行吗???@user3007294如果你想每次单击一行,而不是设置intervartimer,1000,只需调用timer
 $('.next_round').click(function () {
        $('[id^=mastermind_table_]').each(function () {
            $(this).addClass("notTreated");//a fake class just to control
        });
        var counter = setInterval(timer, 1000);

        function timer() {
            var currenttable;
            if ((currenttable = $(".notTreated").first()) == null) {
                clearInterval(counter);
                return;
            }

            $(currenttable).find('td').each(function () {
                $(this).css("background-color", setRandomColor);
            });
            //after treat this table, removes the fake class
            $(currenttable).removeClass("notTreated");
        }
    });