Как сделать различие в предложении if между входным значением или текстовым содержимым td в javascript - PullRequest
0 голосов
/ 25 апреля 2018

Здравствуйте и спасибо, что нашли время прочитать мою проблему.

Я пытаюсь установить значения для матрицы в цикле ниже:

for(var i=0; i<9; i++){
    for(var j=0;j<9;j++){
        var aux = i.toString().concat(j.toString());
        // If that I want
        var num = document.getElementById(aux).innerText;
        matriz[i][j] = num;
        // else
        var num = document.getElementById(aux).value;
        matriz[i][j] = num;

    }
}

У меня есть эта таблица в HTML (я не собираюсь копировать всю таблицу):

<table id="tablero">
  <tr>
    <td> <input id="00" type="text" maxlength="1">  </td>
    <td id="01"></td>
    <td id="02"></td>
    <td id="03"></td>
    <td id="04"></td>
    <td> <input id="05" type="text" maxlength="1"></td>
    <td> <input id="06" type="text" maxlength="1"></td>
    <td id="07"></td>
    <td> <input id="08" type="text" maxlength="1"></td>
  </tr>
  <tr>
    <td id="10"></td>
    <td> <input id="11" type="text" maxlength="1"> </td>
    <td> <input id="12" type="text" maxlength="1"> </td>
..

ТД без входов имеют значения по умолчанию. Итак, как я могу их дифференцировать в предыдущем цикле? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018
for(var i=0; i<9; i++){
    for(var j=0;j<9;j++){
        var aux = i.toString().concat(j.toString());
        if(document.getElementById(aux).tagName=="TD"){
        var num = document.getElementById(aux).innerText;
        matriz[i][j] = num;
        }else{
        var num = document.getElementById(aux).value;
        matriz[i][j] = num;
}
    }
}
0 голосов
/ 25 апреля 2018

Проверьте элемент HTMLInputElement, используя instanceof

var el = document.getElementById(aux);
matriz[i][j] = el instanceof HTMLInputElement ? el.value : el.innerText;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...