2013-11-29 1 views
0

Это моя функция jquery здесь, я добавляю html-код внутри функции. Это есть ошибкаВнутри функции jquery append html code получена ошибка

function onDivisionChange() { 
    $.ajax({ 
    type : 'POST', 
    dataType : 'json', 
    url : '/Example/selectDivision.html', 
    data : ({ 
     id : $('#division').val() 
    }), 
    success : function(responseData) { 

     if (responseData != null) { 

      $('#student').find('td').remove().end().append('').val('-1'); 
      $.each(responseData, function(index, item) { 

       $('#student').append( 
        $('<td></td>').val(item['id']).html(item['id']), 

        $('<td></td>').val(item['id']).html(
         '<a href="edit.html?id=' + item['id'] + '" >Edit</a>'), 
                ^
                 |_ Here Error Occured 

    Error is the '+ item['id'] + ' this line takes as string, not the id value 

    in browser Link as -> edit.html?id=' + item['id'] + ' 

      Correct format is edit.html?id= 41    


        $('<br />').val(item['id']).html(item[''])); 

      }); 
     } 
    } 

}); 

}

Если вы знаете об этой ошибке, пожалуйста, поделитесь ответ

EDIT

страница

function onStudentDivisionChange() { 
    $.ajax({ 
     type : 'POST', 
     dataType : 'json', 
     url : '/Example/selectDivision.html', 
     data : ({ 
      id : $('#division').val() 
     }), 
     success : function(responseData) { 

      if (responseData != null) { 

       $('#student').find('td').remove().end().append(
         '').val('-1'); 
       $.each(responseData, function(index, item) { 

        $('#student').append(
          $('<td></td>').val(item['id']).html(
            item['id']), 
          $('<td></td>').val(item['id']).html(
            item['name']), 
          $('<td></td>').val(item['id']).html(
            item['fatherName']), 
          $('<td></td>').val(item['id']).html(
            item['motherName']), 
          $('<td></td>').val(item['id']).html(
            item['admissionNo']), 
          $('<td></td>').val(item['id']).html(
            item['phoneNo']), 
          $('<td></td>').val(item['id']).html(
            '<a href="edit.html?id=' + (item['id']) + '" >Edit</a>')); 
        alert("Id:"+item['id']); 

       }); 
      } else { 
       $('#student').find('td').remove().end().append(
         '<td th:text="${student}"></td>').val('-1'); 
      } 
     } 

    }); 
} 
+1

Пожалуйста, укажите, какая ошибка. Также вставьте 'console.log (JSON.stringify (item))' непосредственно перед строкой ошибки и сообщите, что он выводит. – Amadan

+0

@Amadan ошибка является ошибкой несоответствия типа, потому что '+ item [' id '] +' берется как строка, а не внутреннее значение. Я думаю, это потому, что неправильный формат квартов Ошибка в консоли: Ошибка поля в объект 'student' в поле 'id': отклоненное значение ['item [' id ']']; коды [typeMismatch.student.id, typeMismatch.id, typeMismatch.long, typeMismatch] –

+0

Что такое 'item' - массив, который я предполагаю, - что? –

ответ

2

Спасибо за то, что вы обновили свой вопрос.

попробовать делать

success : function(responseData) { 

$.each(responseData, function(index, item) { 
    var id = this.id; 
    alert(id); 

или

var id = $(this).attr('id'); 

см jquery each loop examples

0

Я думаю, вы можете попробовать использовать parseInt(), чтобы преобразовать его.

$('<td></td>').val(item['id']).html(
        '<a href="edit.html?id=' + parseInt(item['id']) + '" >Edit</a>') 
+0

это не работает для меня r u test это действительно работает? –