jQuery:如果ID等于statement

时间:2013-05-17 09:24:20

标签: jquery html attr css-selectors

如果选择了其中一个LI,我正在处理执行操作的代码。 因此,如果第一个LI中的一个是“当前”,我想对其执行操作,代码为:

<div id="types">
    <div id="division1">
        <ul id="selection1">
            <li id="current"><a href="#" name="1-1"></a> </li>
            <li><a href="#" name="1-2"></a></li>
            <li><a href="#" name="1-3"></a></li>
        </ul>
    </div>
    <div id="division2">
        <ul id="selection2">
            <li><a href="#" name="2-1"></a></li>
            <li><a href="#" name="2-2"></a></li>
            <li><a href="#" name="2-3"></a></li>
        </ul>
    </div>
</div>

jQuery的:

if (jQuery("#types div ul:nth-child(1)").attr("ID") == "current") {
    *do this*
}

任何人都知道我做错了什么?

2 个答案:

答案 0 :(得分:4)

ul没有ID当前但li没有

试试这个 -

if (jQuery("#types div ul:nth-child(1) li:first").attr("ID") == "current") {
    *do this*
}

答案 1 :(得分:0)

我会把我的两分钱扔到这里

if($('#types div ul > li:first').is('#current')){
    *do this*
}

我抛出了1个伪选择器,1个额外的函数调用和1个内置is()的比较,我发现它更具可读性。

并制作了Fiddle for demo

更新

您错误的是您在父级display:none上设置了#Uitleg1, #Uitleg2,当您尝试.show()时,您继承了display:none

我使用新的选择器更新了CSS。

#Uitleg1, #Uitleg2 div {
    display: none;
}

并从上面的那个中删除了display: none;。您的代码现在可以按预期工作。

另一个Fiddle for demo