【问题标题】:Parse XML NaN Error?Parse XML NaN Error?
【发布时间】:2011-11-03 10:29:50
【问题描述】:

我用 JS 得到这段代码,从 XML 解析,我的输出在 Chrome、FF、IE 中显示 NaN ......我不知道为什么,它来自哪里。我所有的 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

谢谢

【问题讨论】:

    标签: javascript jquery xml nan


    【解决方案1】:

    (这不是一个不回答,而是更多的评论,但是我需要更多的空间和答案的格式来表明我的观点。)

    避免此类错误的最佳方法是始终如一地使用有关如何格式化代码的代码约定。周围有many suggestions for code conventions,但你使用哪个并不重要,只要你对它感到满意,最重要的是始终如一地使用它。

    在你的情况下,如果你将一个长表达式包装成几行,你应该注意三件事:

    • 标识以下行
    • 在二元运算符前后使用空格
    • 最重要的是,始终将运算符放置在行首或行尾。 (不要混合展示位置,否则会像以前一样出现错误。)

    我个人喜欢将运算符放在行尾,所以你“知道”该行必须继续,并且将二进制 + 与一元 + 混淆的危险较小,因为它发生了在你的情况下。

    '<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>'
    

    【讨论】:

      【解决方案2】:
      +'</td>'+'</tr>'+
      

      去掉这一行和的+(下一行也以+开头)

      【讨论】:

      • 不(这不是真正的错误),但也许您可以使用 jquery-templates 来避免这些错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 2012-10-30
      相关资源
      最近更新 更多