Witam, mam mały problem.
Tworzę dynamicznie tabele (dodawanie wiersza na przycisk).
Chciałbym ukryć ostatnie 2 kolumny w wierszu.
Zrobiłem tak:

cos do ukrycia

i w stylu dodałem: .hide { display: none; }.

Działa to ale przy dodawaniu wierszy przez JS nie kopiuje się klasa i zostają pola.
Może ktoś wie jak to zrobić?

JS na dodawanie wiersza:


        var limit = 5;
    var counter = 1;

    function addRow(tableID) {
    if (counter == limit)  {
          alert("Max: 5.");
     }
     else {
            var table = document.getElementById(tableID);

            var rowCount = table.rows.length;
            var row = table.insertRow(rowCount -1);

            var colCount = table.rows[1].cells.length;

            for(var i=0; i<colCount; i++) {

                var newcell = row.insertCell(i);

                newcell.innerHTML = table.rows[1].cells[i].innerHTML;
                //alert(newcell.childNodes);
                switch(newcell.childNodes[0].type) {
                    case "text":
                            newcell.childNodes[0].value = "";
                            break;
                    case "checkbox":
                            newcell.childNodes[0].checked = false;
                            break;
                    case "select-one":
                            newcell.childNodes[0].selectedIndex = 0;
                            break;
                }

            }
            counter++;
        }
    }

Ok, dodałem do JS:


var tr = table.getElementsByTagName('tr'),td;
for(var i=1; td = tr[i++]; ){
td.getElementsByTagName('td')[6].style.display = 'none';
td.getElementsByTagName('td')[7].style.display = 'none';
}

ale konsola zgłasza mi błąd TypeError: td.getElementsByTagName(...)[6] is undefined

Ok, jeszcze inaczej to udało się załatwić:
$('td:nth-child(6)').hide();
$('td:nth-child(7)').hide();