0

我正在尝试查看这些 uls 中是否存在。我用 .length 对其进行了测试,但我不确定我是否做对了。即使 select-sub-domain 类中没有 li,它也会提示 yes。

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>​
4

2 回答 2

0

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

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

如果长度大于 0,则您的代码类似于警报号。这是不正确的。

当长度等于 0 时,它应该提示 no。

于 2012-07-12T09:27:44.300 回答
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/

编辑: 因为JavaScipt 中的 0 是假的,所以它可以写得更短,像这样:

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");
}​
于 2012-07-12T09:28:19.333 回答