使用if / else语句jquery将true / false显示为yes / no

时间:2019-02-05 16:38:50

标签: javascript jquery json frontend

我想将用户状态显示为“活动:是”。我不知道如何编写if else语句。我尝试自己编写它,但是它仍然显示“ active: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>

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

谢谢

3 个答案:

答案 0 :(得分:0)

这里有几个问题:

  • 您正在比较字符串文字值active1,而不是任何变量中保存的值
  • activejUser的属性,因此应为jUser.active
  • jUser.active保存一个整数,而不是一个字符串。虽然可以进行隐式比较,但是比较相同类型是更好的做法。
  • 您在上一条语句中覆盖了text(),因此if是多余的
  • if条件的两面都做同样的事情

还要注意,如果active只有两个可能的状态(在您的示例中大概为10),那么将其设为布尔值{{1}更有意义} / 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');
}
*/

答案 1 :(得分:0)

您不能通过将变量括在引号{ [param: string]: string | string[]; }中来访问该变量。并且''active内部,您需要使用jUser或jUser [“ active”]来访问它。然后在if块之后删除jUser.active

$('#lblActive').text(jUser.active)

答案 2 :(得分:0)

您正在将字符串与数字进行比较,这永远不会做任何事情。您需要将active对象上的jUser属性与数字1进行比较,然后将显示文本设置为“是”或“否”

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()
})