0

如果选择了 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*
}

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

4

2 回答 2

4

ul没有 id current 但li

尝试这个 -

if (jQuery("#types div ul:nth-child(1) li:first").attr("ID") == "current") {
    *do this*
}
于 2013-05-17T09:26:43.267 回答
0

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

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

我扔掉了 1 个伪选择器、1 个额外的函数调用和 1 个比较is(),我发现它们更易读。

为演示制作了一个小提琴

更新

你的错误是你设置display:none了父 div #Uitleg1, #Uitleg2,当你试图.show()在你的孩子上设置它时,它继承了display:none.

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

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

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

为演示制作了另一个小提琴

于 2013-05-17T09:32:44.737 回答