如何使用JavaScript将if语句中的变量与数字进行比较

How can I compare a variable to a number in an if statement using JavaScript?

本文关键字:变量 数字 比较 JavaScript 何使用 if 语句      更新时间:2023-09-26

我尝试制作一个if语句来检查变量是否为2。但每次我尝试,我都会得到另一种说法。这是我的Javascript:

$(document).ready(function() {
    $('#test').html(2);
    var antkeepere = document.getElementById('test');
    if(antkeepere==2){
        $('#mer').html('Ja!')
    } 
    else{
        $('#mer').html('Nei!')
    };
});

首先,我在html中写了2,但没有成功。然后,我试着像上面的例子一样,通过js将其设置为2,但也不起作用。我已经搜索过其他类似的线程,并尝试在if语句和创建变量时使用.value,但都不起作用。

document.getElementById()返回DOM元素,而不是其内容。要获取其HTML内容,必须使用.innerHTML属性。要将其转换为数字,您应该使用parseInt()

var antkeepere = parseInt(document.getElementById('test').innerHTML, 10);

既然你在使用jQuery,你可以坚持使用:

var antkeepere = parseInt($("#test").html());

因为document.getElementById('test');返回一个dom对象。

试试这个

var antkeepere = $("#test").val();

您在jQuery 中确实喜欢这样

$(document).ready(function() {
    $('#test').html(2);
    var antkeepere =$('test').html();
    if(parseInt(antkeepere) == 2){
        $('#mer').html('Ja!')
    } 
    else{
        $('#mer').html('Nei!')
    };
});

由于您使用.html $('#test').html(2);放置2,因此您也可以使用相同的函数.html()访问它,但不需要参数。

如果将antkeepere变量与2进行比较,则需要对其进行解析,以便将其转换为数字,因为.html返回一个字符串。所以这就是为什么你需要做这个if(parseInt(antkeepere) == 2)

如果您要比较不需要parseInt的字符串,您可以简单地进行如下if(antkeepere == 'aaab')

尝试以下代码

 //As I understand test is div or span not input type objects. if it is input type element then use val() instead of html()
 $(document).ready(function() {
      $('#test').html(2);
     var antkeepere = document.getElementById('test');
    //   use can also use parseInt($('#test').html())
    if(parseInt(antkeepere.innerHTML)==2){
       $('#mer').html('Ja!')
     } 
     else{
       $('#mer').html('Nei!')
    };
});

上面的大多数答案都很好,但鉴于您已经加载了jQuery,您还可以使用它(您不需要document.getElement…)。

$(document).ready(function() {
    $('#test').text(2); // Using text() instead of html() just means you can write stuff like "&", instead of "&"
    var antkeepere = parseFloat( $('#test').text() ); // parseFloat ensures the contents of test is converted to a number.
    if(antkeepere == 2){
        $('#mer').text('Ja!')
    } 
    else{
        $('#mer').text('Nei!')
    };
});

首先,您检索的不是#test的html,而是整个元素。其次,为了确保html值是一个值为2的数字,您应该尝试将html值转换为Number。一个简单的代码调整:

$(document).ready(function() {
    $('#test').html(2);
    var antkeepere = Number(document.getElementById('test').html());
    if(antkeepere === 2){
        $('#mer').html('Ja!')
    } 
    else{
        $('#mer').html('Nei!')
    };
});