Ошибки в функции js, которая создает строку таблицы

#javascript #dynamic #html-table #row

#javascript #динамический #html-таблица #строка

Вопрос:

Я создаю строку таблицы в $.ajax() вызове jQuery, который создает строку при успешном выполнении PHP-скрипта.

Я вызываю функцию, которая создает новую строку таблицы на основе результатов скрипта. Вот функция:

 function addNewRow(addDocs, newClassID, classNumberAdd, classNameAdd) {

    var newRow = '';

    newRow  = $('#classesTable tbody:last').after('<tbody>'   
        '<tr bgcolor="#EFE5D3" style="font-weight: bold;">'  
            '<td width="35px"><a class="classEditLink" name="'   newClassID   '" href="#">Edit</a></td>'  
            '<td width="20px"><input type="checkbox" class="chkSelectToDelete" name="deleteClasses[]" value="'   newClassID   '" /></td>'  
            '<td>'   classNumberAdd   '</td>'  
            '<td>'   classNameAdd   '</td>'  
        '</tr>');

    if (addDocs == 'true') {

        $('#docsTable input[type="checkbox"]:checked').each(function() {
            var $row = $(this).parents('tr');
            var docID = $row.find('td:eq(0) input').val();
            var docName = $row.find('td:eq(1)').html();
            var docDescription = $row.find('td:eq(2)').text();

            newRow  = $('#classesTable tbody:last').append('<tr class="classDocsRow">'  
            '<td></td>'  
            '<td align="right"><input type="checkbox" class="chkRemoveDocs" name="removeDocs[]" value="'   docID   '-' newClassID   '" /></td>'  
            '<td width="245px">'   docName   '</td>'  
            '<td width="600px">'   docDescription   '</td>'  
        '</tr>');
        });

//$('#classesTable tbody:last').append('<tr class="classDocsRow"><td></td><td align="right"><input type="checkbox" class="chkRemoveDocs" name="removeDocs[]" value="'   docID   '-' newClassID   '" /></td><td width="245px">'   docName   '</td><td width="600px">'   docDescription   '</td></tr>');

    } else {
        newRow  = $('#classesTable tbody:last').append('<tr class="classDocsRow">'  
            '<td colspan="4">'  
                '<strong>No documents are currently associated with this class.</strong>'  
            '</td>'  
        '</tr>');
    }

    return newRow;
}
  

Aptana Eclipse IDE сообщает об ошибке в двух местах в разделе « if (addDocs == 'true') «: первая ошибка, «отсутствует) после списка аргументов«, находится на второй строке после « newRow = ... «, а вторая ошибка «отсутствует; перед инструкцией» находится через две строки после этого. Обратите внимание, что вскоре после этого я также закомментировал весь этот раздел в одной строке (не разделенный конкатами строк). Это показывает только одну ошибку, ошибку об отсутствии правильного paren.

Если я закомментирую все в предложении if и передам addDocs как false, предложение else вернет новую строку, как и ожидалось.

Должно быть, это просто синтаксическая проблема js, но я не вижу, что я делаю неправильно.

Любая помощь будет высоко оценена!

Ответ №1:

Здесь вам не хватает :

 '   docID   '-'   newClassID   '" /></td>'  
                ^
  

Вторая ошибка, вероятно, является просто результатом первой ошибки.

Комментарии:

1. Кажется, что именно простые ошибки сбивают нас с толку больше всего! Спасибо, Гуффа. Добавил , и все заработало отлично!