2012-07-12 83 views
0

我試圖看看是否存在這些uls中的任何一個。我用.length進行了測試,但我不確定是否正確。即使在select-sub-domain類中沒有li,它也會提示yes。測試元素是否存在jquery

http://jsfiddle.net/ST8Be/

if ($('ul.expul > li.select-sub-domain').length < 0) { 
var sub_doma = "Not set"; 
alert("no"); 
} else { 
alert("yes"); 
var sub_domain = $('li.select-sub-domain').attr('id'); 
var sub_domainSplit = sub_domain.split('-'); 
var sub_doma = sub_domainSplit[1]; 
}​ 

<ul class="one expul"> 
<li class='select' id=eng-88>1</li> 
<li class='select' id=eng-89>2</li> 
<li class='select' id=eng-90>3</li> 
<li class='select' id=eng-91>4</li> 
<li class='select' id=eng-92>5</li> 
<li class='select' id=eng-93>6</li> 
<li class='select' id=eng-94>7</li> 
<li class='select' id=eng-95>8</li> 
<li class='select' id=eng-96>9</li> 
<li class='select' id=eng-97>10</li> 
<li class='select' id=eng-98>11</li> 
<li class='select' id=eng-99>12</li>      
</ul> 

<ul class="two expul hide"> 
<li class='select' id=fin-100>1</li> 
<li class='select' id=fin-101>2</li> 
<li class='select' id=fin-102>3</li> 
<li class='select' id=fin-103>4</li> 
<li class='select' id=fin-104>5</li> 
<li class='select' id=fin-105>6</li> 
<li class='select' id=fin-106>7</li> 
<li class='select' id=fin-107>8</li>     
</ul> 

<ul class="three expul hide"> 
<li class='select' id=three-108>1</li> 
<li class='select' id=three-109>2</li> 
<li class='select' id=three-110>3</li> 
<li class='select' id=three-111>4</li> 
<li class='select' id=three-112>5</li> 
<li class='select' id=three-113>6</li> 
</ul>​ 

回答

0

變化$('ul.expul > li.select-sub-domain').length > 0)

$('ul.expul > li.select-sub-domain').length == 0)

你的代碼一樣,如果長度大於0,警報沒有。這是不正確的。

應該沒有發出警報時,長度等於0

+0

謝謝。錯過了那個:) – Ciprian 2012-07-12 09:47:09

0

只要改變你的if語句,現在你是在提醒是在沒有項目,沒有的時候有沒有。

if ($('ul.expul > li.select-sub-domain').length === 0) { 
    var sub_doma = "Not set"; 
    alert("no"); 
} else { 
    alert("yes"); 
    var sub_domain = $('li.select-sub-domain').attr('id'); 
    var sub_domainSplit = sub_domain.split('-'); 
    var sub_doma = sub_domainSplit[1]; 
}​ 

http://jsfiddle.net/PeterForss/ST8Be/2/

編輯: 因爲0 in JavaScipt is falsy,可以寫成更短,像這樣:

if ($('ul.expul > li.select-sub-domain').length) { 
    alert("yes"); 
    var sub_domain = $('li.select-sub-domain').attr('id'); 
    var sub_domainSplit = sub_domain.split('-'); 
    var sub_doma = sub_domainSplit[1]; 
} else { 
    var sub_doma = "Not set"; 
    alert("no"); 
}​ 
相關問題