如果语句保存在Javascript变量中

如果语句保存在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语句中,从来没有见过他们弹出。

+1

它'jQuery',不'JQuery' –

+0

你的意思是* “如果** **元素已经被添加到页面的” * –

+0

此外,你的代码应该抛出一个'未捕获的SyntaxError:意外的令牌如果' –

如果语句不完全一样的工作,但你可以使用三元运算,其功能以同样的方式,(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