Не могу получить значение ячейки в столбце 1 и 2. Подскажите правильно написан код?

202
19 января 2017, 06:09

var k = 0; 
 
function add() { 
  $('tr').each(function(row) { 
    var col1 = $(row).children('td:nth-child(1)').text(); 
    var col2 = $(row).children('td:nth-child(2)').text(); 
    if (col1 == 'опоздание более 15мин' && col2 == 'согласовано') { 
      console.log(col1, col2); 
      return ++k; 
 
    } 
 
  }); 
} 
console.log(add()); 
 
$('span.str').text('' + k);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<table border=1> 
  <tr> 
    <td>опоздание более 15мин</td> 
    <td>согласовано</td> 
  </tr> 
</table> 
<span class="str"></span>

Answer 1

Попробуйте так, дело в том что в ф-ция each находит массив элементов (даже если он 1), первый параметр это индекс элемента в массиве, а второй сам элемент, Вы пытались использовать индекс вместо элемента. Также дождитесь загрузки jQuery.

<script>
        var k=0; 
    jQuery(function($){
        console.log(add());
        $('span.str').text(''+k);
    });     
    function add(){
        $('table tr').each(function (row, e) {
            var col1 = $(e).children('td:nth-child(1)').text();
            var col2 = $(e).children('td:nth-child(2)').text();
            if (col1 == 'опоздание более 15мин' &&  col2 == 'согласовано') {
                console.log(col1, col2);
                return ++k;
            }
        }); 
    }

    </script>
Answer 2

В функции each должно быть 2 переменных первая - порядковый номер, вторая - сам объект.

var k = 0; 
 
function add() { 
  $('tr').each(function(nomer, row) { 
 
    var col1 = $(row).children('td:nth-child(1)').text(); 
    var col2 = $(row).children('td:nth-child(2)').text(); 
    if (col1 == 'опоздание более 15мин' && col2 == 'согласовано') { 
      console.log(col1, col2); 
      return ++k; 
 
    } 
  }); 
} 
add(); 
 
$('span.str').text('' + k);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<table border=1> 
  <tr> 
    <td>опоздание более 15мин</td> 
    <td>согласовано</td> 
  </tr> 
</table> 
<span class="str"></span>

READ ALSO
Javascript. Как реализовать взаимодействие DOM-элементов? [требует правки]

Javascript. Как реализовать взаимодействие DOM-элементов? [требует правки]

К примеру у нас есть два div'a, которые изображены в виде шаровИх задача перемещаться по экрану в любом направлении, и как только эти шары пересекаются,...

293
Yii2 валится с ошибкой при POST-запросе к методу

Yii2 валится с ошибкой при POST-запросе к методу

Из ангуляра вызываю метод, вот так:

271
Условная конструкция в AngularJS

Условная конструкция в AngularJS

Не могу понять почему в этой программе не выполняется условное выражение:

295