如果选择了其中一个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*
}
任何人都知道我做错了什么?
答案 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;
。您的代码现在可以按预期工作。