![](/img/trans.png)
[英]Boolean object in javascript returns true for “false” parameter
[英]Boolean(“false”) returns true.. any alternative?
我正在使用jquery将true和false字符串写入datahtml属性。 但是,当我向其中一个属性写入false,然后将其检查为false时,它将返回true。 我还在线阅读了它应该这样做的信息,这根本没有任何意义。
有人有其他选择吗? 任何帮助将非常感激!
(function() {
// $(".opt-header").click(function () {
$(document).on("click", ".opt-header", function() {
console.log($(this).attr("data-is-panel-activated"));
var is_activate = Boolean($(this).attr("data-is-panel-activated"));
$(this).siblings(":not(.opt-group-toggle)").slideToggle(300);
console.log(is_activate);
if (is_activate) {
$(this).find(".fa-angle-right").replaceWith("<i class='fa fa-angle-down'></i>");
$(this).attr("data-is-panel-activated", "false");
} else {
$(this).attr("data-is-panel-activated", "true");
$(this).find(".fa-angle-down").replaceWith("<i class='fa fa-angle-right'></i>");
}
})
})();
Boolean('false')
将返回true
因为字符串'false'
是真实的。
您可以运行检查以查看字符串是否等于“ false”:
if ($(this).attr("data-is-panel-activated") === 'false') {
.....
}
最简单的解决方法是:
var is_activate = $(this).attr("data-is-panel-activated") !== "false";
要么
var is_activate = $(this).attr("data-is-panel-activated") === "true";
取决于哪种语义对您的代码更有意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.