Почему я получаю Uncaught TypeError: Не могу прочитать свойство 'style' из неопределенного здесь

javascript html html5 ejs

700 просмотра

2 ответа

Я пытаюсь скрыть пустые строки в этой таблице. Таблица может отображать максимум 4 строки за раз, поэтому, если count равен 2, я хочу, чтобы отображались только 2 строки ... Я должен упустить что-то очень очевидное здесь. Я рассматриваю все подобные вопросы на Stackoverflow и других форумах, но ни один из них не дал ответа ... Кто-нибудь может увидеть, в чем здесь проблема. Кстати ... Решение не в том, чтобы установить идентификатор для элементов и сделать getElementById .. Я попробовал это. Я на самом деле передаю переменную count в res.render () ... но жестко запрограммирован здесь для удобства. Буду признателен за любую помощь.

<!DOCTYPE html>
<html >
<head>
 <meta charset="UTF-8"> 
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">

 <script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
 <script src="/socket.io-client/socket.io.js"></script>

 <style>

    body {
        margin-top:30px;
    }
    .hidden {
        display: none;
    }

 </style>
 <script type="text/javascript">
    var count=2;

    var activerows=document.getElementsByClassName("hidden");



    for (var i=0; i<activerows.length; i++) {
        activerows[i].style.display='block';
     }

 </script>
</head>
<body>
    <div class="container">
     <div class="row">
      <div class="col-md-8">

        <table class="table table-striped table-border" id="dealers">

            <tbody>

                <tr class="hidden active">
                    <th>A</th>    
                    <th>B</th>  
                    <th>C</th>
                    <th>D</th>
                </tr>
                <tr class="hidden">
                    <td>1</td>
                    <td>2/td>
                    <td>3</td>
                    <td>4m</td>
                </tr>
                 <tr class="hidden">
                    <td>5</td>
                    <td>6</td>
                    <td>7</td>
                    <td>8</td>
                </tr>
                <tr class="hidden">
                    <td>9</td>
                    <td>10</td>
                    <td>11</td>
                    <td>12</td>
                </tr>

            </tbody>
        </table>
      </div>
      <div class="more" id="more">
        <button type="submit" class="fbtn btn-default">More....</button>    
      </div>


     </div>

    </div>
</body>
</html>
Автор: MichaelE Источник Размещён: 08.11.2019 11:05

Ответы (2)


1 плюс

Решение

ОБНОВЛЕНИЕ: JSFIDDLE здесь у вас есть код для отображения только trто, что вы хотите отобразить, изменив вашу countпеременную. Таким образом, если countравно 3, он будет отображать только 3tr

Автор: Edison Biba Размещён: 20.08.2016 09:04

0 плюса

Вы должны использовать длину activerows как предел для. Возможно, вы читаете больше элементов, которые массив имеет на самом деле

Автор: ela Размещён: 20.08.2016 09:06
Вопросы из категории :
32x32