更改 ul li 父颜色
Change ul li parent color
我在HTML中有这段代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Form</title>
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="script.js"></script>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<ul class="cars_menu">
<li>Audi
<ul>
<li class="highlight">A4</li>
<li>A6</li>
<li>A3</li>
<li>A5</li>
</ul>
</li>
<li>Volkswagen
<ul>
<li>Golf IV</li>
<li>Golf VI</li>
<li>Golf V</li>
<li>Jetta</li>
</ul>
</li>
<li>BMW
<ul>
<li>E36</li>
<li>E60</li>
<li>E70</li>
<li>Z4</li>
</ul>
</li>
</ul>
</body>
</html>
CSS代码:
.highlight {
color: red;
}
还有我的脚本文件:
$( "ul.cars_menu li" ).click(function() {
$( this ).toggleClass( "highlight" );
});
任何人都知道如何更改奥迪的颜色,如果我单击 A4、A6,它应该将 A4 和奥迪的颜色设置为红色,例如如果我单击 GOLF IV,它需要将大众汽车和高尔夫 IV 更改为红色等等。
有人可以帮助我吗?欣赏,伙计们:)
请将 html 代码更改为
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Form</title>
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="script.js"></script>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<ul class="cars_menu">
<li>Audi</li>
<li>
<ul class="model">
<li>A4</li>
<li>A6</li>
<li>A3</li>
<li>A5</li>
</ul>
</li>
<li>Volkswagen</li>
<li>
<ul class="model">
<li>Golf IV</li>
<li>Golf VI</li>
<li>Golf V</li>
<li>Jetta</li>
</ul>
</li>
<li>BMW</li>
<li>
<ul class="model">
<li>E36</li>
<li>E60</li>
<li>E70</li>
<li>Z4</li>
</ul>
</li>
</ul>
</body>
</html>
J查询代码到
$( "ul.model li" ).click(function() {
$( this ).parent().removeClass( "highlight" );
$( this ).toggleClass( "highlight" );
$( this ).parent().parent().prev('li').toggleClass( "highlight" );
});
希望它能奏效!!.
你需要将
。你的jQuery包装在一个:
$(document).ready(function() {
$('ul.cars_menu li').click(function() {
$( this ).toggleClass( "highlight" );
});
});
这样做的原因 - 您需要等待 DOM 完成加载,然后才能在页面下方的元素上设置事件......
$(document).ready 事件是当 DOM 完成加载并且可以操作时...
编辑以包括js摆弄一些有关如何完成此操作的示例:http://jsfiddle.net/7gdzLgam/
关于如何使用jquery定位父元素的答案仍然是原始问题
你应该能够为此使用 .parent()。像这样:
$( this ).parent().toggleClass( "highlight" );
你可以通过做来检查点击的li的值
$( "ul.cars_menu li" ).click(function() {
if ($( this ).text() == 'A4'){
//change css
}
});
下载 js 文件时不会创建 DOM 元素。你的JavaScript是正确的,但你需要包括你的
<script src="script.js"></script>
在正文标签的末尾,以便它可以工作。
这是因为当加载javascript时,它会检查您在js文件中指定的dom元素。它将无法找到该元素,因为 dom 尚未完全创建。所以它只是忽略了它。
或者将javascript包装在里面
$(document).ready(function(){
//Your code here
});
这样除非创建 DOM 元素,否则不会执行 js。
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 高亮显示时编辑文本大小和颜色
- 更改Jquery UL li筛选器中的链接颜色
- 更改js中的li项目符号颜色
- 更改 ul li 父颜色
- 用“for 循环”为每一秒更改颜色 ul li
- 使用特定颜色的li元素进行绘制
- 当我用鼠标点击身体区域时,那个li标签是如何改变颜色的
- sliicknav菜单,每个li都有特定的颜色背景
- 仅用javascript更改li中的每个第一个单词的颜色
- CSS选择器问题,如何改变父li的字体颜色时,子ul的焦点
- & lt; li>不同背景颜色之间的元素切换
- 根据所选页面更改li元素的背景颜色
- 如何改变li元素的背景颜色
- 在ul li中选择一个href更改颜色
- 根据字符串数组更改li元素的颜色
- Li背景颜色重复/图案
- 无法更改 UL 中所选 li 项目的背景颜色
- 在Javascript中改变li的背景颜色
- 如何动态地添加一个类到li项目,并使用javascript和css改变它的背景颜色