2012-05-30 45 views
0

我需要排除的功能元素和我用if子句掙扎......如何解決在JavaScript/JQuery中這個複雜的if語句?

我可以有四種類型的元素有三個屬性

   A     B    C   D 
----------------------------------------------------------------- 
"external" undefined  boolean/undefined boolean  boolean 
"wrapper" boolean  undefined   boolean  undefined 
"parent"  1    0     1   1 

我需要構建一個if從句只允許一個傳遞,我要瘋了......

以下是我有:

// "from" is my element to check 
if ( 
    (typeof from.jqmData("external-page") == "undefined" 
      && from.parents('body').length == 1) 
    || 
    (typeof from.jqmData("external-page") == "boolean" 
      && from.parents('body').length == 0) 
    ) { 
    // do something  
    } 

有人能幫助我,讓我走上正軌嗎?

謝謝!

+1

你就不能這樣做'如果(...}這種一|| ...}這種B){...}'? [instanceOf](https://developer.mozilla.org/en/JavaScript/Reference/Operators/instanceof) – Andreas

+1

不完全確定問題是什麼;你可以使用'==='顯式地檢查'undefined'和'false',除此之外它只是組合邏輯。 –

+0

@Andreas:謝謝instnaceOf。以前從未聽說過。 – frequent

回答

1

將這項工作:

if (from.parents('body').length === 0 || typeof from.jqmData('external-page') === 'undefined') { 
    // do something 
} 
+0

好的。我知道了!我需要用父母替換父母,以使其工作,但你讓我走上正軌! – frequent