var air = ITC.ITC.hotel.options.option[itc].packages.package[i].airfare - 1;
var opt = ITC.ITC.hotel.options.option[itc].packages.package[i].option - 1;
console.log((air+1)); // Display 1 in console
console.log((opt+1)); // Display 7 inconsole
detailHtml += '<button class="btn btn-primary btn-lg nav-book" type="button" onclick="book_package(\''+ITC.sid+'\' , '+ITC.ITC.hotel.orig_hot_num_xsl+' , \''+(itc+1)+'\' , '+(package_idx+1)+' , '+(air+1)+' , '+(opt+1)+');">'+lang['book']+'</button>';
当我检查元素时,函数book_package的最后两个参数是01和61的整数但是当我在控制台中执行air + 1和opt + 1时我得到1和7 ...
<button class="btn btn-primary btn-lg nav-book" type="button" onclick="book_package('3dd57f6c9e133553378e11d7521ab1be1463751663', 1, '1,3', 7, 01, 61);">Book Now</button>
编辑2
我也试过
var air = parseInt(ITC.ITC.hotel.options.option[itc].packages.package[i].airfare) - 1;
var opt = parseInt(ITC.ITC.hotel.options.option[itc].packages.package[i].option) - 1;
'+(parseInt(air+1))+' , '+(parseInt(opt+1))+'
我清除了浏览器缓存,只是因为,我仍然遇到同样的问题
编辑3
新尝试,仍然是同样的问题...
'+(1 + parseInt(air , 10))+' , '+(1 + parseInt(opt , 10))+'
答案 0 :(得分:2)
在detailHtml += '<button...
,你开始使用一个字符串...这使得JS将所有内容解释为字符串连接,而在代码的其他部分,你没有任何字符串可以搞砸了!
解决方案:
detailHtml += '<button class="btn btn-primary btn-lg nav-book" type="button" onclick="book_package(\''+ITC.sid+'\' , '+ITC.ITC.hotel.orig_hot_num_xsl+' , \''+parseInt(itc+1)+'\' , '+parseInt(package_idx+1)+' , '+parseInt(air+1)+' , '+parseInt(opt+1)+');">'+lang['book']+'</button>';
var a = 1, b = 6;
var r = 'Result';
r += ': ' + parseInt(a+1) + ', ' + parseInt(b+1);
document.body.innerHTML = r;
答案 1 :(得分:0)
确保它们是integer:
,确保安全air = parseInt(air);
opt = parseInt(opt);
答案 2 :(得分:0)
仔细检查数据类型是否有空,然后选择。
检查一下,看看第一个警报如何将空气作为数字,第二个警告将其作为字符串:plnkr.co/edit/4Ll6juBC3BEu1MgdUhjx?p=preview