当悬停父div时,更改子div的背景颜色
我有以下设置:
<div class="parent">
<div class="child">
</div>
<div class="child">
</div>
<div class="child">
</div>
</div>
当鼠标悬停在其中任何一个上时,我试图同时更改所有它们的所有背景颜色。我尝试过:
<script type="text/javascript">
$(function() {
$('.parent').hover( function(){
$(this).css('background-color', 'gray');
},
function(){
$(this).css('background-color', 'red');
});
});
</script>
但是,颜色没有“透过”子元素
来显示。有没有办法选择“this”的后代。我连续有很多这样的集合,所以我想我需要使用“this”,这样我就不会通过 id 调用每个父级。我在想这样的事情:
<script type="text/javascript">
$(function() {
$('.parent').hover( function(){
$(this "div").css('background-color', 'gray');
},
function(){
$(this "div").css('background-color', 'red');
});
});
</script>
但是,不能完全让它工作 - jquery.com 上的所有示例都使用 id 选择器...没有一个使用“this”。
多谢!
I have the following setup:
<div class="parent">
<div class="child">
</div>
<div class="child">
</div>
<div class="child">
</div>
</div>
I'm trying to change all the background color of all of them at the same time, when the mouse is hovering over any one of them. I tried:
<script type="text/javascript">
$(function() {
$('.parent').hover( function(){
$(this).css('background-color', 'gray');
},
function(){
$(this).css('background-color', 'red');
});
});
</script>
But, the color is not "showing through" the children <div>
s.
Is there a way to choose the descendents of "this". I have many of these sets in a row, so I think I need to use "this" so I don't have the call each parent by id. I'm thinking something like this:
<script type="text/javascript">
$(function() {
$('.parent').hover( function(){
$(this "div").css('background-color', 'gray');
},
function(){
$(this "div").css('background-color', 'red');
});
});
</script>
But, can't quite get it to work - all the examples on jquery.com use the id selector... none use "this".
Thanks a lot!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
如果您的目标不是 IE6,则无需使用 JavaScript,纯 CSS 即可解决问题:
If you're not targeting IE6, no need to use JavaScript, pure CSS will do the trick:
你已经尝试过 .children() 了吗?
jQuery API
have you already tried .children()?
jQuery API
您可以使用
.find()
http://api.jquery.com/children/
you can use
.find()
http://api.jquery.com/children/
试试这个:
演示: http://jsfiddle.net/zt9M6/
try this:
demo: http://jsfiddle.net/zt9M6/
您正在使用带有混合参数的
$()
- 它要么必须是一个字符串作为选择器 (div
),要么只是一个 DOM 元素 (this< /代码>)。要选择
this
上下文中的所有div
,请尝试像这样调用它:From http://api.jquery.com/jQuery/#jQuery1
You're using
$()
with mixed arguments - it's either got to be a string as a selector (div
), or just a DOM element (this
). To select alldiv
s within the context ofthis
, try calling it like this:From http://api.jquery.com/jQuery/#jQuery1
用 CSS 类来做
Do it with CSS classes