[英]Display a true / false as a yes / no with if / else statment jquery
我想将用户状态显示为“活动:是”。 我不知道如何编写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>
现在,输出就是我编写的内容,但是我想将其显示为是或否。
谢谢
这里有一些问题:
active
和1
,而不是任何变量中保存的值 active
是jUser
的属性,因此应为jUser.active
jUser.active
保存一个整数,而不是一个字符串。 尽管隐式比较会起作用,但是比较相同类型是更好的做法。 text()
,因此if
是多余的 if
条件的双方都做同样的事情 还要注意,如果active
只有两个可能的状态(在您的示例中大概为1
或0
),那么将其设为布尔值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
,然后将一些显示文本设置为“是”或“否”
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()
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.