2012-07-12 80 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"); 
}​ 
相关问题