我有
<div id="tablePlace"></div>
并且
if ($('#radioOne').is(':checked') == true) {
$("#tablePlace").html(" ");
$("#tablePlace").append(htmlTable); //htmlTable is a string that contains an html table code
loadNestedTable(temp);
}
它有效但在div中我找到了NaN。
如果我评论$("#tablePlace").append(htmlTable);
,则NaN不会出现。
为什么?
更新
htmlValue代码:
var tab = '<table id="decretoSingolo">'+
+'<thead>'
+ '<tr>'
+ '<th>Ente</th>'
+ '<th>CUP</th>'
+ '<th>Decreto impegno</th>'
+ '<th>Data decreto impegno</th>'
+ '<th>Importo impegno</th>'
+ '<th>Finanziato MIUR</th>'
+ '<th>Importo pagato</th>'
+ '<th>Importo in pagamento</th>'
+ '</tr>'
+ '</thead>'
+ '<tbody>'
+ '</tbody>'
+'</table>'
+'<div style="display:none">'
+ '<table id="dettagliDecretoSingolo">'
+ '<thead>'
+ '<tr>'
+ '<th>Progressivo pagamento</th>'
+ '<th>Data decreto</th>'
+ '<th>Numero decreto pagamento</th>'
+ '<th>Tipo pagamento</th>'
+ '<th>Importo in pagamento</th>'
+ '<th>Nota decreto</th>'
+ '</tr>'
+ '</thead>'
+ '<tbody>'
+ '</tbody>'
+ '</table>'
+'</div>';
htmlTable值:
<table id="myTable">NaN<tr><th>Ente</th><th>CUP</th><th>Decreto impegno</th><th>Data decreto impegno</th><th>Importo impegno</th><th>Finanziato</th><th>Importo pagato</th><th>Importo in pagamento</th></tr></thead><tbody></tbody></table><div style="display:none"><table id="myTableDetails"><thead><tr><th>Progressivo pagamento</th><th>Data decreto</th><th>Numero decreto pagamento</th><th>Tipo pagamento</th><th>Importo</th><th>Nota</th></tr></thead><tbody></tbody></table></div>
NaN出现在.append()之后。 htmlTable代码有问题吗?
答案 0 :(得分:7)
问题是你的代码中有一元+
:
var tab = '<table id="decretoSingolo">'+
+'<thead>'
// ^--- Here
删除其中一个+
。通常最好使用上一行末尾的+
,以避免自动分号插入问题。
NaN
:这是一元+
因为它跟在前一行末尾的+
之后,它们之间有空格(所以它不是我最初建议的++
。) / p>
一元+
将尝试获取其操作数(后面的字符串)并将其转换为数字,如果无法完成,则会产生NaN
。然后前一行+
的操作数是一个字符串和一个数字,因此加法运算符将字符串转换为数字并将其添加到NaN
(产生NaN
)。< / p>
你可以在这里看到:
var tab = '<table id="decretoSingolo">'+
+'<thead>'
+ '<tr>';
document.body.innerHTML = tab;
旁注:没有必要.html(" ")
然后.append(htmlTable)
,只需执行.html(htmlTable)
。
答案 1 :(得分:2)
您在以下行中有双加号+
,请删除一个:
var tabellaDecretoSingolo = '<table id="decretoSingolo">'+
+'<thead>'
+ '<tr>'
应该是:
var tabellaDecretoSingolo = '<table id="decretoSingolo">'
+'<thead>'
+ '<tr>'
希望这有帮助。
答案 2 :(得分:0)
首先,您可以优化您的javascript:
if ($('#radioOne').is(':checked') == true) {
$("#tablePlace").html(" ");
$("#tablePlace").append(htmlTable); //htmlTable is a string that contains an html table code
loadNestedTable(temp);
}
通过
if ($('#radioOne').is(':checked') == true) {
$("#tablePlace").html(htmlTable); //html() replace all content of your element child.
loadNestedTable(temp);
}
此外,定义“htmlTable”值
时出现问题<table id="myTable">NaN<tr> [...]
检查“&gt;”后如果你不添加NAN var ...
你的元素