Parse XML NaN Ошибка? - PullRequest
       5

Parse XML NaN Ошибка?

0 голосов
/ 25 августа 2011

я получил этот код с JS, анализируя из XML, мой вывод отображает NaN в Chrome, FF, IE ... и я не знаю почему, откуда он взялся.Все мои поля XML - это символы, поэтому я использую функцию .text () ...

    function parse(document){
    $(document).find("EMaDetails").each(function(){
        $("#main").append(
            '<table>'
            +'<tr>'+'<td>'
            +$(this).find('Nachn').text()+', '
            +$(this).find('Vorna').text()
            +'</td>'+'</tr>'+
            +'<tr>'+'<td>'
            +$(this).find('Detail1').text()+', '
            +$(this).find('Detail2').text()
            +'</td>'+'</tr>'
            +'</table>'
            );


    });
}

И результат такой:

NaN
Lastname1, Firstname1
Detail1, Detaila1
NaN
Lastname2, Firstname2
Detail2, Detaila2

Спасибо

Ответы [ 2 ]

1 голос
/ 25 августа 2011
+'</td>'+'</tr>'+

удалить + в и этой строке (следующая строка тоже начинается с +)

0 голосов
/ 25 августа 2011

(Это не ответ, а скорее комментарий, однако мне нужно больше места и форматирование ответа, чтобы показать мою точку зрения.)

Лучший способ избежать такого рода ошибок - это последовательноиспользуйте соглашение о коде о том, как форматировать ваш код.Есть много предложений по соглашениям о коде , но не важно, какой из них вы используете, до тех пор, пока вам это удобно, а главное - используйте его последовательно.

В вашем случае, когда выОборачивая длинное выражение в несколько строк, следует обратить внимание на три вещи:

  • Обозначить следующие строки
  • Использовать пробелы до и после двоичного оператора
  • И что самое важное, последовательно размещайте операторов либо в начале, либо в конце строки.(Не смешивайте размещение, иначе вы получите ошибки, как у вас.)

Лично мне нравится, когда оператор находится в конце строки, так что вы "знаете", чтолиния должна продолжаться, и меньше опасности спутать двоичный файл + с унарным +, как это произошло в вашем случае.

'<table>' +
  '<tr>' + '<td>' +
  $(this).find('Nachn').text() + ', ' +
  $(this).find('Vorna').text() +
  '</td>' + '</tr>' +
  '<tr>' + '<td>' +
  $(this).find('Detail1').text() + ', '  +
  $(this).find('Detail2').text()  +
  '</td>' + '</tr>' +
  '</table>'
...