Javascript 使用if/else语句jquery将真/假显示为是/否

Javascript 使用if/else语句jquery将真/假显示为是/否,javascript,jquery,json,frontend,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(j

我想将用户状态显示为“活动:是”。我不知道如何写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>

让jUser={
“姓名”:“A”,
“姓氏”:“B”,
“活动”:1
}
$('#lblName').text(jUser.name)
$('#lblLastName').text(jUser.lastName)
//如果此处有其他声明:
如果('active'='1'){
$('lblActive')。文本(“是”)
}
else if('active'='0'){
$('lblActive')。文本(“是”)
}
$('#lblActive').text(jUser.active)
$('.navlink')。单击(函数(){
$('.navlink').removeClass('active'))
$('.page').hide()
$(this.addClass('active'))
设sPageToShow=$(this.attr('data-showPage'))
$('#'+sPageToShow).show()
})
现在输出是我写的任何东西,但我想显示为是或否


谢谢

这里有几个问题:

  • 您正在比较字符串文字值
    active
    1
    ,而不是任何变量中的值
  • active
    jUser
    的属性,因此它应该是
    jUser.active
  • jUser.active
    保存整数,而不是字符串。虽然隐式比较会起作用,但比较相同的类型是更好的做法
  • 覆盖上一条语句中的
    text()
    ,因此
    if
    是多余的
  • if
    条件的两侧执行相同的操作
还请注意,如果
active
只有两种可能的状态(在您的示例中可能是
1
0
),则将其设置为布尔值
true
/
false
更有意义

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

let jUser={
“姓名”:“A”,
“姓氏”:“B”,
“活动”:1
}
$('#lblActive').text(jUser.active==1?'Yes':'No');
/*
//完全“如果”条件下的相同逻辑:
如果(jUser.active==1){
$('lblActive')。文本('Yes');
}否则{
$('lblActive')。文本('No');
}
*/


活动:
您不能通过将变量用引号括起来来访问它。而
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
进行比较,然后将一些显示文本设置为“是”或“否”


您正在将一个字符串(活动)与一个数字字符串(1/0)进行比较-这永远不会满足条件。您需要实际获取活动值,而不是使用字符串。首先,您要比较的是字符串,而不是变量中的值。其次,
if
条件(如果有效)的两个方面都做了相同的事情……在if中写入
jUser.active==1有什么问题?以及
else if
if(jUser.active==1 | | jUser.active==0)
谢谢-我是新手,所以我正在尝试理解逻辑。这对解释很有帮助。而且它有效!没问题。如果有帮助的话,别忘了接受答案。我接受了,但我得到了这样的反馈:“声誉低于15的人所投的票会被记录下来,但不会改变公开显示的帖子分数。”
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()
})