我想将用户状态显示为“活动:是”。我不知道如何编写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>
现在,输出就是我写的内容,但我想将其显示为是或否。
谢谢
答案 0 :(得分:0)
这里有几个问题:
active
和1
,而不是任何变量中保存的值active
是jUser
的属性,因此应为jUser.active
jUser.active
保存一个整数,而不是一个字符串。虽然可以进行隐式比较,但是比较相同类型是更好的做法。text()
,因此if
是多余的if
条件的两面都做同样的事情还要注意,如果active
只有两个可能的状态(在您的示例中大概为1
或0
),那么将其设为布尔值{{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()
})