gpt4 book ai didi

javascript - 函数可以在控制台运行,但不能在 jQuery 中运行

转载 作者:行者123 更新时间:2023-12-03 07:20:57 26 4
gpt4 key购买 nike

我正在创建一个简单的二进制到十进制转换器页面,其中包含一个比较选项。我的二进制到十进制函数工作正常,jQuery 可以运行并将其显示到 DOM。我的比较函数在控制台中工作正常,但在 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 函数返回一个数字。

只需将 decbin 转换为相同类型,然后再在 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!");
};
};

关于javascript - 函数可以在控制台运行,但不能在 jQuery 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36212610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com