Jquery 如何仅选择<;李>;使用<;ul>;?
我有一个Jquery 如何仅选择<;李>;使用<;ul>;?,jquery,nested-lists,Jquery,Nested Lists,我有一个,其中包含另一个和 我希望能够访问任一,并对每个应用不同的功能 我一直采用以下方法: 示例A: 如果此包含,请在单击时执行此操作 例B: 如果此不包含,请在单击时执行此操作 但它不起作用,所以我正在尝试测试基本原理 示例A似乎同时选择了,甚至是不包含的嵌套示例 HTML JSFIDLE 编辑: <div id="container"> <ul class="squares"> <li> <ul class="nested"> <li
,其中包含另一个
和
我希望能够访问任一
,并对每个应用不同的功能
我一直采用以下方法:
示例A:
如果此包含
,请在单击时执行此操作
例B:
如果此不包含
,请在单击时执行此操作
但它不起作用,所以我正在尝试测试基本原理
示例A似乎同时选择了
,甚至是不包含
的嵌套示例
HTML
JSFIDLE
编辑:
<div id="container">
<ul class="squares">
<li>
<ul class="nested">
<li class="hidden_li" style="height: 20px; width: 50px; background: yellow; display: none; position: relative; z-index: 999999; left: 0px;top: 70px;">
<a href="">test</a>
</li></ul>
</li>
<li>
<ul class="nested">
<li class="hidden_li" style="height: 20px; width: 50px; background: yellow; display: none; position: relative; z-index: 999999; left: 0px;top: 70px;">
<a href="">test</a>
</li></ul>
</li>
<li></li>
<li></li>
// etc
</ul>
</div>
我只是想澄清一下,我想特别有选择性,这样我就可以对每个
应用不同的点击功能,这就是为什么我需要弄清楚如何准确地选择它们,而不是仅仅依靠“过度隐藏”继承的样式等。您编写的HTML和Javascript冲突。第二个
嵌套在第一个中,由于其样式为背景绿色,因此所有子元素都位于该
背景中
请看这里:
Javascript实际上并没有将第二个
设置为背景绿色。它只是在背景为绿色的
中。您编写的HTML和Javascript冲突。第二个
嵌套在第一个中,由于其样式为背景绿色,因此所有子元素都位于该
背景中
请看这里:
Javascript实际上并没有将第二个
设置为背景绿色。它只是在背景为绿色的
中。您编写的HTML和Javascript冲突。第二个
嵌套在第一个中,由于其样式为背景绿色,因此所有子元素都位于该
背景中
请看这里:
Javascript实际上并没有将第二个
设置为背景绿色。它只是在背景为绿色的
中。您编写的HTML和Javascript冲突。第二个
嵌套在第一个中,由于其样式为背景绿色,因此所有子元素都位于该
背景中
请看这里:
Javascript实际上并没有将第二个
设置为背景绿色。它位于背景为绿色的内部。用于选择具有嵌套ul
用法的li
$('li ul').parent()
(这将返回所选ul
标记的父li
标记。您也可以使用li>ul
)选择具有嵌套ul
使用的li
$('li ul').parent()
(这将返回所选ul
标记的父li
标记。您也可以使用li>ul
)选择具有嵌套ul
使用的li
$('li ul').parent()
(这将返回所选ul
标记的父li
标记。您也可以使用li>ul
)选择具有嵌套ul
使用的li
$('li ul').parent()
(这将返回所选ul
标记的父li
标记。您也可以使用li>ul
)尝试此操作
$("li:has(ul)").css('background', 'green')
$('li ul').css('background', 'red')
试试这个
$("li:has(ul)").css('background', 'green')
$('li ul').css('background', 'red')
试试这个
$("li:has(ul)").css('background', 'green')
$('li ul').css('background', 'red')
试试这个
$("li:has(ul)").css('background', 'green')
$('li ul').css('background', 'red')
上面的行不会使li
都变成绿色。它导致第一个父级li
仅为绿色。但是,由于子级li
(不包含ul
)没有自己的背景色,因此它看起来是绿色的,因为它继承了其父级的背景色
上面的行不会使li
都变成绿色。它导致第一个父级li
仅为绿色。但是,由于子级li
(不包含ul
)没有自己的背景色,因此它看起来是绿色的,因为它继承了其父级的背景色
上面的行不会使li
都变成绿色。它导致第一个父级li
仅为绿色。但是,由于子级li
(不包含ul
)没有自己的背景色,因此它看起来是绿色的,因为它继承了其父级的背景色
上面的行不会使li
都变成绿色。它导致第一个父级li
仅为绿色。但是,由于子级li
(不包含ul
)没有自己的背景色,因此它看起来是绿色的,因为它继承了其父级的背景色。解决方案:
<div id="container">
<ul class="squares">
<li>
<ul class="nested">
<li class="hidden_li" style="height: 20px; width: 50px; background: yellow; display: none; position: relative; z-index: 999999; left: 0px;top: 70px;">
<a href="">test</a>
</li></ul>
</li>
<li>
<ul class="nested">
<li class="hidden_li" style="height: 20px; width: 50px; background: yellow; display: none; position: relative; z-index: 999999; left: 0px;top: 70px;">
<a href="">test</a>
</li></ul>
</li>
<li></li>
<li></li>
// etc
</ul>
</div>
以下实现了所需的结果,即顶层和嵌套的
的独立功能
老实说,我还不知道它是如何工作的,但它是如何工作的,我添加了一些额外的功能来测试。但是代码漂亮不需要标记
HTML:
<div id="container">
<ul class="squares">
<li>
<ul class="nested">
<li class="hidden_li" style="height: 20px; width: 50px; background: yellow; display: none; position: relative; z-index: 999999; left: 0px;top: 70px;">
<a href="">test</a>
</li></ul>
</li>
<li>
<ul class="nested">
<li class="hidden_li" style="height: 20px; width: 50px; background: yellow; display: none; position: relative; z-index: 999999; left: 0px;top: 70px;">
<a href="">test</a>
</li></ul>
</li>
<li></li>
<li></li>
// etc
</ul>
</div>
jQuery
// just for <li>
$(document).on("click","ul.squares > li:nth-child(1n-7)", function (e) {
$(".hidden_li").hide();
$(this).find(".hidden_li").fadeIn();
$("ul.squares > li:nth-child(1n-7)").removeClass("select");
$(this).addClass("select");
e.preventDefault();
//alert("i am a li");
});
// just for nested <li>
$(document).on("click","ul.nested > li", function (e) {
e.stopPropagation();
$("ul.nested > li").removeClass("select_blue");
$(this).addClass("select_blue");
e.preventDefault();
alert("i am a nested li");
});
//只为
$(文档)。在(“单击”,“ul.squares>li:n子项(1n-7)”,函数(e){
$(“.hidden_li”).hide();
$(this.find(“.hidden_li”).fadeIn();
$(“ul.squares>li:n第n个子(1n-7)”).removeClass(“选择”);
$(this.addClass(“选择”);
e、 预防默认值();
//警惕(“我是李”);
});
//只为嵌套
$(文档)。在(“单击”,“ul.nested>li”,函数(e){
e、 停止传播();
$(“ul.nested>li”).removeClass(“选择蓝色”);
$(this).addClass(“sele