Javascript jquery当前父选择器和子选择器
我在选择正确的电流选择器时遇到了一些小问题Javascript jquery当前父选择器和子选择器,javascript,jquery,html,Javascript,Jquery,Html,我在选择正确的电流选择器时遇到了一些小问题 $('#menu > li').on('mouseover', function (e) { $(this).find("ul:first").show(); $(this).find('> a').addClass('active'); }).on('mouseout', function (e) { $(this).find("ul:first").hide(); $(this).find('> a
$('#menu > li').on('mouseover', function (e) {
$(this).find("ul:first").show();
$(this).find('> a').addClass('active');
}).on('mouseout', function (e) {
$(this).find("ul:first").hide();
$(this).find('> a').removeClass('active');
});
在上面的代码中,我可以找到
及其
甚至它的第一个
现在我想找到第一个
的所有子项
。比如首先查找id为的ul
,然后再查找id中的所有其他ul
,直到带有图像的ul
我刚刚添加了该id以供参考,我不打算使用该id
<ul id="menu" class="clearfix"> <li><a href="#">Categories</a>
<li class="purple">
<a href="#">Design</a>
<ul id="firstul">
<li><a href="#">Photoshop</a>
<ul>
<li>
<a href="#"> Photoshop CS</a>
<ul>
<li><img src="m3.jpg" width="200"></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
用于上述工作的JSFIDLE
此外,我还需要一个jQuery,它不使用css选择器,也不使用ul>li>ul
这对我不起作用,否则我可能在尝试时使用错误。$(“#nav.parent item”)。单击(function(){
演示:$(“#导航父项”)。单击(函数(){
演示:好的,我做了一些事情,但有一个问题我不明白: 看看这里 我编辑你的小提琴,所以,现在:当鼠标进入“类别”(或其他元素,有一个类似ul的子元素)默认情况下,所有的第一个ul显示 …但是如果你选择“类别”>“设计”>“Illustrator”子菜单会淡出。但是如果你在其他时间也这样做,一切都会很好。我不知道为什么。你自己试试吧 我的零钱: 使用
mouseenter
和mouseleave
代替mouseover
和mouseout
,以防止在导航菜单时调用双重处理程序
添加一个新类\u选定的,该类显示了li中的所有第一个,当您导航到类别第一个li时,该类将被放置,当您更改为非第一个的其他子类别时,该类将被删除
这:
是一种检查,用于确定鼠标光标下方的元素是否可见,因为它们位于第一个元素流中
对不起,我的英语太差了,很难解释。好的,我做了一些事情,但有一个问题我不明白:
看看这里
我编辑你的小提琴,所以,现在:当鼠标进入“类别”(或其他元素,有一个类似ul的子元素)默认情况下,所有的第一个ul显示
…但是如果你选择“类别”>“设计”>“Illustrator”子菜单会淡出。但是如果你在其他时间也这样做,一切都会很好。我不知道为什么。你自己试试吧
我的零钱:
使用mouseenter
和mouseleave
代替mouseover
和mouseout
,以防止在导航菜单时调用双重处理程序
添加一个新类\u选定的,该类显示了li中的所有第一个,当您导航到类别第一个li时,该类将被放置,当您更改为非第一个的其他子类别时,该类将被删除
这:
是一种检查,用于确定鼠标光标下方的元素是否可见,因为它们位于第一个元素流中
很抱歉,我的英语太差了,很难解释。使用Frogmouth的答案,我做了一些更改。我添加了以下内容
$(this).find("ul > li:first > ul:first").show();
$(this).find("ul > li:first > ul:first > li:first > ul:first").show();
$(this).find("ul > li:first > ul:first > li:first > ul:first > li:first >ul:first").show();
children();
无法工作,因为它将转到最里面的子级,并试图显示未显示父级的位置
我做了一个大菜单类型的结构,它会根据子菜单项的不同而变化
$(this).find("ul > li:first > ul:first").show();
$(this).find("ul > li:first > ul:first > li:first > ul:first").show();
$(this).find("ul > li:first > ul:first > li:first > ul:first > li:first >ul:first").show();
children();
无法工作,因为它将转到最里面的子级,并试图显示未显示父级的位置
我制作了一个大菜单类型的结构,它会根据子菜单项的不同而变化。小提琴我很难理解你想要什么。你能在选择器中使用#菜单
?或者.clearfix
?这个:$(“ul”)。不是(“ul”)
查找第一个
而不使用\id
。注意……此选择器查找所有不是子对象的。我不想使用css选择器。我需要jQuery选择器。我使用了#菜单,使用它我想在其中找到第一个ul并添加一个类,同时我想找到所有内部ul和也给它们添加一个类。
$(“#菜单ul”).addClass(“someclass”)
这会给#菜单中的每个ul添加一个类。我很难理解您想要什么。您能在选择器中使用#菜单
或.clearfix
?这是:$(“ul”)。不是(“ul”)
查找第一个
而不使用\id
。注意……此选择器查找所有不是子对象的。我不想使用css选择器。我需要jQuery选择器。我使用了#菜单,使用它我想在其中找到第一个ul并添加一个类,同时我想找到所有内部ul和添加一个类。
$(“#menu ul”).addClass(“someclass”)
这将在#menu
中的每个ul中添加一个类,不使用子对象(ul)给我的是最顶层的,那就是$(this).find("ul > li:first > ul:first").show();
$(this).find("ul > li:first > ul:first > li:first > ul:first").show();
$(this).find("ul > li:first > ul:first > li:first > ul:first > li:first >ul:first").show();