如果语句保存在Javascript变量中
问题描述:
我有一段JQuery被保存到一个变量名中,该变量名有助于在页面上创建通知。我试图改变与html元素相关的类,如果类已经被添加到页面。这是在WordPress插件中完成的。如果语句保存在Javascript变量中
下面是原来和下面这是我第一次刺伤它。
noticeItemOuter = jQuery('<div></div>').addClass('notice-item-wrapper');
我尝试:
noticeItemOuter = if (JQuery(".notice-item-wrapper").length > 0) {
jQuery('<div></div>').addClass('notice-item-wrapper2');
}else{
jQuery('<div></div>').addClass('notice-item-wrapper');
}
我加控制台日志中的if else语句中,从来没有见过他们弹出。
答
如果语句不完全一样的工作,但你可以使用三元运算,其功能以同样的方式,(expression)? true statement: false statement;
noticeItemOuter = ((jQuery(".notice-item-wrapper").length > 0)?
jQuery('<div></div>').addClass('notice-item-wrapper2'):
jQuery('<div></div>').addClass('notice-item-wrapper'));
+0
这实际上为我工作。谢谢@Wold – Denoteone
答
不允许你分配这样一个变量。你为什么不做这样的事情?
if (jQuery(".notice-item-wrapper").length > 0) {
noticeItemOuter = jQuery('<div></div>').addClass('notice-item-wrapper2');
} else {
noticeItemOuter = jQuery('<div></div>').addClass('notice-item-wrapper');
}
答
jQuery(function ($) { // DOM ready and $ alias secured
// Check if element already exists
var noticeItemExists = $(".notice-item-wrapper").length;
// New Element creation
$("<div/>", {
"class": noticeItemExists ? "notice-item-wrapper2" : "notice-item-wrapper",
appendTo: "body" // or wherever you want to insert your element
});
});
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
它'jQuery',不'JQuery' –
你的意思是* “如果** **元素已经被添加到页面的” * –
此外,你的代码应该抛出一个'未捕获的SyntaxError:意外的令牌如果' –