2013-05-09 4 views
1

Я пытаюсь создать полевое поле. «Я очень новичок в Js».Как проверить значение таблицы td?

То, что я сделал до сих пор:

var level = prompt("Choose Level: easy, medium, hard"); 
if (level === "easy") { 
    level = 3; 
} else if (level === "medium") { 
    level = 6; 
} else if (level === "hard") { 
    level = 9; 
} 
var body = document.getElementsByTagName("body")[0]; 
var tbl = document.createElement("table"); 
var tblBody = document.createElement("tbody"); 
for (var i = 1; i <= 10; i++) { 
    var row = document.createElement("tr"); 
    document.write("<br/>"); 
    for (var x = 1; x <= 10; x++) { 
     var j = Math.floor(Math.random() * 12 + 1); 
     if (j < level) { 
      j = "mined"; 
     } else { 
      j = "clear"; 
     } 
     var cell = document.createElement("td"); 
     var cellText = document.createTextNode(j + " "); 
     cell.appendChild(cellText); 
     row.appendChild(cell); 
    } 
    tblBody.appendChild(row); 
} 
tbl.appendChild(tblBody); 
body.appendChild(tbl); 
tbl.setAttribute("border", "2"); 

Так я создаю здесь 2d таблицы и ввести 2 случайные значения в строках и столбцах (добытой или ясно).

Где я застрял в:

Проверьте тд = добывали он умирает в противном случае открыть коробку (тд) и т.д.

Как назначить значение ТД? Я имею в виду, как я могу проверить, какое значение (mined/clear) есть в td, который нажат?

Ps: Пожалуйста, не пишите весь код :) просто показать мне трек пожалуйста :)

Thnx за ответы!

Ok! Я зашел так далеко. Но если я нажимаю на строку, это иногда дает четкость, даже если я нажимаю на заминированную строку или наоборот!

// create the table 
    var body = document.getElementsByTagName("body")[0]; 
    var tbl  = document.createElement("table"); 
    tbl.setAttribute('id','myTable'); 
    var tblBody = document.createElement("tbody"); 


    //Create 2d table with mined/clear 
    for(var i=1;i<=10;i++) 
    { 
    var row = document.createElement("tr"); 
    document.write("<br/>"); 

for(var x=1;x<=10;x++) 
{ 
var j=Math.floor(Math.random()*12+1); 

if(j<level) 
{ 
j = "mined"; 
} 
else{ 
j = "clear"; 
} 
var cell = document.createElement("td"); 
    var cellText = document.createTextNode(j + ""); 
    cell.appendChild(cellText); 
    row.appendChild(cell); 

} 
    tblBody.appendChild(row); 
    } 
    tbl.appendChild(tblBody); 
     body.appendChild(tbl); 
    tbl.setAttribute("border", "2"); 


    //Check which row is clicked 

    window.onload = addRowHandlers; 

function addRowHandlers() { 
var table = document.getElementById("myTable"); 
var rows = table.getElementsByTagName("tr"); 
for (i = 0; i < rows.length; i++) { 
    var currentRow = table.rows[i]; 
    var createClickHandler = 
     function(row) 
     { 
      return function() { 
       var cell = row.getElementsByTagName("td")[0]; 
       var id = cell.innerHTML; 
       if(id === "mined") 
       { 
       alert("You died"); 
       }else 
       { 
       alert("clear"); 
       } 
       }; 
     } 

    currentRow.onclick = createClickHandler(currentRow); 
      } 
      } 

Я думаю, что я что-то неправильно с приданием идентификатор таблицы «MyTable» ..

Вы можете видеть это?

Спасибо заранее!

+2

Может быть, вы ищете это? [Node.textContent Mozilla] (https://developer.mozilla.org/en-US/docs/DOM/Node.textContent) –

ответ

1

Таким образом, идея будет:

  1. назначить событие щелчка для каждого тд ячейки:

    td.addEventListener('click', mycallback, false);

  2. в обработчик событий (обратного вызова), проверьте содержание td:

    function mycallback(e) { /*e.target is the td; check td.innerText;*/ }

педагогические ресурсы:

Смежные вопросы