我是编程新手,我希望你们帮我解决这个问题。我想点击事件class="menu a"
上的submenu li a
的背景颜色。{/ 1}}。
代码: -
$(document).ready(function(){
$(".menu").click(function(){
$(".submenu").hide();
$(this).children().show();
});
$(".submenu li a").click(function(){
$(".submenu li a").css("color","blue");
$(this).css("color","red");
$(this).parent(".menu a").css({"background": "green"});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="menu"><a href="#">link 1</a>
<ul class="submenu">
<li><a href="#">inlink 1</a></li>
<li><a href="#">inlink 2</a></li>
</ul>
</li>
<li class="menu"><a href="#">link 2</a>
<ul class="submenu">
<li><a href="#">inlink 1</a></li>
<li><a href="#">inlink 2</a></li>
</ul>
</li>
</ul>
答案 0 :(得分:0)
看起来你正试图使用它:
$(this).parent('.menu a')
问题是,.menu a
不是其父母。只有.menu
。 a
是.menu
的孩子(就像.submenu li
的叔叔;)。
相反,请使用:
$(this).parent('.menu').children('a')
首先找到父.menu
,然后找到它的直接子a
。 children()
(与find()
相对)将确保您只获得直接子项,而不是.submenu
中的直接子项。
答案 1 :(得分:0)
1。 您需要使用.closest(),因为menu
不是submenu li
的直接父母
2。 在submenu li
点击后,首先从其他menu a
中移除背景颜色,然后将背景颜色添加到当前点击的父级{{1 }}
工作片段: -
menu a
$(document).ready(function(){
$(".menu").click(function(){
$(".submenu").hide();
$(this).children().show();
});
$(".submenu li a").click(function(){
$('.menu').children("a").css({"background": "white"});
$(".submenu li a").css("color","blue");
$(this).css("color","red");
$(this).closest(".menu").children("a").css({"background": "green"});
});
});
答案 2 :(得分:0)
使用void Main()
{
var indexes = new List<int> { 1, 2, 5, 7, 10 };
var orderedProducts = new List<Product>();
orderedProducts.Add(new Product());
orderedProducts.Add(new Product());
orderedProducts.Add(new Product());
orderedProducts.Add(new Product());
orderedProducts.Add(new Product());
//orderedProducts.Add(new Product());//Add this in and you will see a result at index 5
//orderedProducts.Add(new Product());
//orderedProducts.Add(new Product());//7
//orderedProducts.Add(new Product());
//orderedProducts.Add(new Product());
//orderedProducts.Add(new Product());//10
var myProducts = orderedProducts.Where((pr, i) => indexes.Any(x => x == i)).ToList();
}
public class Product
{
}
代替closest
parent
答案 3 :(得分:0)
您可以使用nearest()
来完成此操作$($(this).closest(".menu a").css({"background": "green"});