显示真/假作为是/否与if/else语句jquery



我想将用户状态显示为"活动:是"。我不知道如何写 if else 语句。我尝试自己编写它,但它仍然显示"活动:1"我试图自己做一个 if else 语句,但它不起作用。

<script>
    let jUser = {
        "name":"A",
        "lastName":"B",
        "active": 1
    }
    $('#lblName').text(jUser.name)
    $('#lblLastName').text(jUser.lastName)
    //if else statement here: 
    if ('active' == '1') {
        $('#lblActive').text("yes")  
    }
    else if ('active' == '0') {
        $('#lblActive').text("yes") 
    }
    $('#lblActive').text(jUser.active)
    $('.navlink').click( function(){ 
        $('.navlink').removeClass('active')                 
        $('.page').hide() 
        $(this).addClass('active')                          
        let sPageToShow = $(this).attr('data-showPage')     
        $('#'+sPageToShow).show()
    })
</script>

现在输出是我写的任何内容,但我想将其显示为是或否。

谢谢

这里有几个问题:

  • 您正在比较字符串文本值active1,而不是任何变量中保存的值
  • activejUser的属性,所以应该jUser.active
  • jUser.active保存一个整数,而不是一个字符串。虽然隐式比较会起作用,但最好比较相同的类型。
  • 覆盖最后一个语句中的text(),因此if是多余的
  • if条件的双方都做同样的事情

另请注意,如果active只有两种可能的状态(在您的示例中可能是10(,那么将其作为布尔true/false值会更有意义。

考虑到所有这些,您可以通过简单的三元表达式实现您的目标:

let jUser = {
  "name": "A",
  "lastName": "B",
  "active": 1
}
$('#lblActive').text(jUser.active === 1 ? 'Yes' : 'No');
/*
// the same logic in a full 'if' condition:
if (jUser.active === 1) {
  $('#lblActive').text('Yes');
} else {
  $('#lblActive').text('No');
}
*/
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Active: <label id="lblActive"></label>

您无法通过将变量括在引号'' 中来访问该变量。active在里面jUser你需要使用 jUser.active 或 jUser["active"] 访问它。并在您的if块之后删除$('#lblActive').text(jUser.active)

if (jUser.active === 1) {
    $('#lblActive').text("yes")  
}
if (jUser.active === 0) {
    $('#lblActive').text("no") 
}

你把一个字符串和一个数字进行比较,它永远不会做任何事情。 需要将jUser对象上的active属性与数字1进行比较,然后设置一些显示文本"yes"或"no">

let jUser = {
    "name":"A",
    "lastName":"B",
    "active": 1
}
$('#lblName').text(jUser.name)
$('#lblLastName').text(jUser.lastName)
let activeStatus = jUser.active === 1 ? "yes" : "no";
$('#lblActive').text(activeStatus);
$('.navlink').click( function(){ 
    $('.navlink').removeClass('active')                 
    $('.page').hide() 
    $(this).addClass('active')                          
    let sPageToShow = $(this).attr('data-showPage')     
    $('#'+sPageToShow).show()
})

最新更新