2014-03-06 115 views
-1

如果addClass()成功,我該如何對消息「工作」發出警報?這是addClass()代碼如下所示:如果addClass成功,如何提醒?

$("li.selected").children("ul").addClass("childUL"); 

這樣做的原因是增加一類「childUL」爲每UL上下級的li.selected的,它coul'd這個樣子例如或完全不同的:

<ul> 
    <li> 
    <ul> 
     <li class="selected"> 
     <ul> 
      <li> 
      <ul> 
       <li> 
       </li> 
      </ul> 
      </li> 
     </ul> 
     </li> 
     <li> 
     <ul> 
      <li> 
      </li> 
     </ul> 
     </li> 
    </ul> 
    </li> 
</ul> 

在這個例子中:http://jsfiddle.net/4EbLu/27/伊布是不是綠色。也許這會清除我的問題。

乾杯/羅賓。

+1

所以.. addClass()'永遠不會失敗。我認爲你可能要查找的是確定是否在$(「li.selected」).children(「ul」)中選擇了任何內容,在這種情況下,你可以檢查'.length'屬性。 –

+1

它總是成功的,它爲什麼會失敗? – adeneo

+0

成功意味着什麼?這是否意味着它實際上向一個元素添加了一個類? – epascarello

回答

2

您可以添加

if($("li.selected").children("ul").hasClass("childUL")) 
{ 

} 
1

答案依賴於你的意思是什麼成功使用後hasClass。

如果答案是執行的代碼,所以它是成功的,而不是在它有效後立即添加提醒。

如果您想知道是否添加了某個類,那麼您需要檢查返回的集合的長度。這假定班級還沒有在那裏。

var elems = $("li.selected").children("ul").addClass("childUL"); 
if (elems.length) { 
    alert('it worked'); 
} 

如果您只想知道新添加的類,請不要過濾掉已經有類的uls。

var elems = $("li.selected").children("ul").not(".childUL").addClass("childUL"); 
+0

+1已經完成,但你應該得到另一個' .not()'邏輯。看起來像OP正在尋找什麼 –

1

addClass永遠是成功。你想知道的是,如果實際上有一些元素在你的堆棧中。你可以檢查長度:

var $ul = $("li.selected").children("ul"); 
if($ul.length) 
    $ul.addClass('childUl'); 
else alert('No UL');