函数可以在控制台中工作,但不能在jQuery中工作
Function works in console but not jQuery
我正在创建一个简单的二进制到十进制转换器页面,其中包含一个比较选项。我的二进制到十进制函数运行良好,jQuery可以运行并将其显示到DOM。我的compare函数在控制台中运行良好,但当jQuery单击函数调用时就不起作用了。Console.log在jQuery函数外使用完全相同的数字,但在函数内不使用。这是jsfiddle:https://jsfiddle.net/deniswells59/ekdtk60t/
//simple compare function
var result = "";
var assert_equal = function(bin, dec) {
if(bin === dec){
return result = ("They are Equal!");
} else {
return result = ("They aren't Equal!");
};
};
//this works fine as well as .binaryToDecimal(), which I didn't include
$("#convert").click(function(){
var value = $("#binToConvert").val();
var valueConverted = value.binaryToDecimal();
$("#display").html("<span class='results'>"+value+"</span> converts to <span class='results'>"+valueConverted+"</span>");
});
//this ALWAYS displays "They aren't Equal!"; console.log says otherwise
$("#compare").click(function() {
var binary =$("#binary").val();
var decimal =$("#decimal").val();
binary = binary.binaryToDecimal();
assert_equal(binary, decimal);
$("#display").html("<span class='results'>"+result+"</span>");
});
您需要确保它们是相同的类型。现在bin
是一个数字,dec
是一个字符串(因为jQuery的.val()
总是返回一个字符串,即使用户输入了一个数字)。bin
是一个数字,因为binaryToDecimal
函数返回一个数字。
只需将dec
和bin
转换为相同的类型,然后在assert_equal
函数中进行比较。否则,如果您不关心类型,则可以直接使用==
。
像这样的东西应该可以做到:
var assert_equal = function(bin, dec) {
if(parseInt(bin) === parseInt(dec)){
return result = ("They are Equal!");
} else {
return result = ("They aren't Equal!");
};
};
您应该将函数添加到assert_equal中,如下所示
var assert_equal = function(bin, dec) {
if(bin.binaryToDecimal() == dec)
return result = ("They are Equal!");
}
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- Rails Production-可以工作,但不能编辑/删除/创建记录
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- 两个独立工作的javascript函数,但不能一起工作
- 漂亮的照片在Dreamweaver上完美运行;但不能在任何浏览器上在线工作
- 如何在HTML / CSS中填充垂直和滚动中间窗格(Chrome可以工作,但不能Firefox)
- RGB 到 HEX JavaScript 函数在 Chrome 中工作,但不能在 Firefox 或 Safari 中工
- 节点:zlib.gunzip 可以工作,但不能 zlib.inflate
- webview日期选择器可以在android模拟器中工作,但不能在设备上工作
- jQuery addClass/removeClass在调试期间工作,但不能正常执行
- CSS和Javascript可以在内部服务器上工作,但不能在外部工作
- 我的regex可以在regex101.com沙箱中工作,但不能在实际的javascript中工作
- 为什么jQuery可以在jSfiddle中工作,但不能在站点中工作
- Sencha Touch、Apigee JS SDK和Phonegap可以在浏览器中工作,但不能在IOS中工作
- Fancybox图像点击可以独立工作,但不能与我的其他代码一起工作
- . getelementbyid工作但不能.getelementbyid ().value