Помогите господа!!!сам не допру никак))
вот пишу крестикиНолики. Как мне взять(например) "td"[2] и проверить какой из рисунков в нем находиться??? помогите новичку плиз)))
Код:
<BODY> |
Не стал читать Ваш код, так как не читабелен.
Вы матрицу себе представляете что это такое, ну или массив. В данном случае у вас должен быть массив, скажем var table = [ [id1,id2,id3] [id4,id5,id6] [id7,id8,id9] ]; Его даже можно сделать одномерным. И считывать что находиться в нём. |
Цитата:
мне просто добавить var table, а вместо id1, id2...поставить идентификатор td? А как потом считывать? |
Интересно будет последить как гражданин, который сам не умеет работать с массивами (Ultimatum), будет учить как нужно работать с массивами.
Ultimatum, пивом и чипсами я запасся... Т.ч. готов внимать твоему гению. :yes: |
Цитата:
|
Цитата:
А вообще, dimidrol, в вашем коде много плохого. Например, в результате O.cloneNode(true) (кстати, зачем true, если у картинки O нет детей, которые надо копировать?) каждый раз создаётся новый элемент с таким же id. Т. е. у вас на странице id теряет своё основное св-во - уникальность. Дальше: вам совершенно необязательно через замыкания сохранять номер элемента - можно через this обратиться к нему: <div id="el" style="width: 100px; height: 100px; background: red"></div> <script> document.getElementById("el").onclick= function(){ alert(this.style.background); // и вовсе необязательно обработчику знать, каким по счёту на странице является этот див)) }; </script> P. S. Как поправите это - публикуйте код, продолжим разбор ошибок дальше. P. P. S. И уберите это бешеное количество отступов - бесит. Вполне достаточно одного-двух пробелов или символа табуляции. |
Цитата:
Мне просто до жути интересно, как решит такую задачку гражданин, который еще не овладел навыком поиска элемента в массиве... Да и задачу ты в корне неправильно начал делать. Лучше сразу такое выкинуть. Ну если только табличку пустую оставить... :) |
<table><tbody> <tr> <td id="a"></td><td id="b"></td><td id="c"></td> </tr> <tr> <td id="d"></td><td id="e"></td><td id="f"></td> </tr> <tr> <td id="g"></td><td id="h"></td><td id="i"></td> </tr> </tbody></table> <script> var O=new Image() O.src ="zero.png"; var X=new Image() X.src ="dagger.png"; function ticTacToe(){ var cells = document.getElementsByTagName("td"); var last = O; for (var i =0; i <= 8; i++){ var cell = cells[i]; cell.onclick = function (){ if (this.innerHTML==""){ if (last==X){ this.appendChild(O.cloneNode(false)); } else{ this.appendChild(X.cloneNode(false)); } last=last==X ? O : X; } else { alert ("клетка заполнена"); } }; } } ticTacToe() </script> Но я не понимаю что мне использовать вместо метода O.cloneNode(false), у меня же всего два рисунка, innerHTML удаляет прошлый! |
Цитата:
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> #playing td { width: 30px; height: 30px; } .player0 { background: url('http://javascript.ru/forum/images/smilies/blink.gif') no-repeat center; } .player1 { background: url('http://javascript.ru/forum/images/smilies/laugh.gif') no-repeat center; } </style> <script type="text/javascript"> player=0; $(document).ready(function (){ $('#playing td').click(function (){ if (this.className!='') { return false; }; this.className='player'+player; player=(player+1)%2; }); }); </script> </head> <body> <table border='1'> <tbody id='playing'> <tr> <td></td><td></td><td></td> </tr> <tr> <td></td><td></td><td></td> </tr> <tr> <td></td><td></td><td></td> </tr> </tbody> </table> </body> </html> |
вот, разобрался!Просто jquery ще не начинал(первый раз юзаю)! что дальше?
<script type="text/javascript"> player=0; $(document).ready(function(){ $(document).css("background").slideDown("slow"); $("#game td").click(function(){ if (this.className==""){ this.className="player"+player; player = (player+1)%2; } }) }) </script> |
Часовой пояс GMT +3, время: 14:53. |