dict.get(“ITEMID”)是长(26位)作为一个字符串。当我点击一行时,'callJs'函数会触发,但会发生一个奇怪的问题。我的长长如一串成为龙,例如:

row id --> 85511111031103236921544356 , 
in function I see, row id --> 8551111103110325e+25 

我的字符串变成龙,我无法理解。我也检查了我的解析器返回正确的值。我认为动态创建的行的单击函数将字符串转换为long。

function callJs(itemId) { 
    alert(itemId); // prints 8551111103110325e+25 
    alert(itemId.toString()); // prints 8551111103110325e+25 
} 

正如你看到的,在迭代循环,我打印每行的itemId,打印正确的价值(85511111031103236921544356):

enter image description here

我找不到任何地方的任何解决方案。我想将每行的id传递给我的函数。

任何解决方案让我很高兴..提前

谢谢..

在这一行:

"onclick='callJs("+ dict.get('itemId') +");'>" + 

的生成HTML看起来像这样:

"onclick='callJs(11111112222222);'>" 

因此,使用整数参数调用callJs

您需要更改线路是这样这样的:产生

"onclick='callJs(\""+ dict.get('itemId') +"\");'>" + 

,这将导致在这个HTML:

"onclick='callJs("11111112222222");'>" 

这里,callJs被称为一个字符串论据。

通常,在生成动态HTML时,必须确保HTML格式正确。大多数情况下,这意味着要检查数据周围是否有字符'",这些字符应该被解释为字符串,并确保这些字符不会出现在错误的位置(例如字符串中间)。

有工具可以帮助你做到这一点。例如,请参阅firefox的firebug,或其他浏览器中的各种内置工具。

+0

你是快,呵呵 – 2012-01-12 12:25:05

+0

它的工作原理,谢谢! – barisatbas 2012-01-12 12:27:42

+0

我只是指出缺少的引号,这个答案更好地解释了为什么你需要引号 – 2012-01-12 12:32:32

我认为问题在于如何构建您的呼叫。只要改变这一点:

"onclick='callJs('"+ dict.get('itemId') +"');'>" + 

看引号(' “+这里” ')+

相关推荐