2012-07-12 2 views
0

Я пытаюсь увидеть, существует ли в любом из этих uls. Я тестировал его с .length, но я не уверен, что я делаю это правильно. Он предупреждает о да, даже если нет класса li с классом select-sub-domain.Проверить, существует ли элемент 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

0

Просто измените, если заявление, прямо сейчас вы сообщаете да, когда нет никаких пунктов, и нет, когда нет ни одного.

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/

EDIT: Поскольку 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"); 
}​ 
Смежные вопросы