Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery,我可以将一个元素作为目标,仅当父元素悬停在其上时才显示其子元素吗?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 使用jQuery,我可以将一个元素作为目标,仅当父元素悬停在其上时才显示其子元素吗?

Javascript 使用jQuery,我可以将一个元素作为目标,仅当父元素悬停在其上时才显示其子元素吗?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,好的,我现在正在做一个页面,我有两个元素,父元素和子元素 <div id="parent">Hi <span class="child">Bye</class> </div> 我遇到的问题是,页面中有多个具有不同ID的父元素,但子元素都是同一个类。因此,当我将鼠标悬停在任何父元素上时,所有子元素都会同时显示。如何在父级显示中仅生成子元素,而不遍历每个子元素并为其指定唯一的类/id,然后更改函数 谢谢那就行了 $(this).find('.ch

好的,我现在正在做一个页面,我有两个元素,父元素和子元素

<div id="parent">Hi 
<span class="child">Bye</class> 
</div>
我遇到的问题是,页面中有多个具有不同ID的父元素,但子元素都是同一个类。因此,当我将鼠标悬停在任何父元素上时,所有子元素都会同时显示。如何在父级显示中仅生成子元素,而不遍历每个子元素并为其指定唯一的类/id,然后更改函数

谢谢

那就行了

$(this).find('.child')

那就行了

$(this).find('.child')


不要使用jQuery,使用CSS

.child {
    display: none;
}
*:hover > .child {
    display: inline;
}
我不太愿意添加这一点,因为CSS方法更有意义,但现在我们开始:如果必须使用jQuery,请使用
:has(>.child)


不要使用jQuery,使用CSS

.child {
    display: none;
}
*:hover > .child {
    display: inline;
}
我不太愿意添加这一点,因为CSS方法更有意义,但现在我们开始:如果必须使用jQuery,请使用
:has(>.child)


您只需更改选择父母和子女的方式:

$('.parentElement').hover(function()
{
    $(this).find('.child').show();
}, function()
{
    $(this).find('.child').hide();
});

您只需更改选择父母和子女的方式:

$('.parentElement').hover(function()
{
    $(this).find('.child').show();
}, function()
{
    $(this).find('.child').hide();
});

像下面那样改变它

 $(parentId).mouseenter(function() {

    $(this).find('.child').show();
});

像下面那样改变它

 $(parentId).mouseenter(function() {

    $(this).find('.child').show();
});
当然可以

$('#parent').hover(function(){
    $(this).children().show();
},function(){
    $(this).children().hide(); 
});

并确保修复您的结束标记
span
确保可以

$('#parent').hover(function(){
    $(this).children().show();
},function(){
    $(this).children().hide(); 
});


并确保修复您的结束标记
span
您可以使用CSS来完成此操作。假设HTML类似于:

<div class="parent">
    <div class="child"></div>
</div>

您可以使用CSS来实现这一点。假设HTML类似于:

<div class="parent">
    <div class="child"></div>
</div>


我会假设这样的事情:会解决你的问题。对于
$(“div”)
您可以在函数中查找任何父ID。但是,您甚至不需要这样做。

我假设这样做:可以解决您的问题。对于
$(“div”)
您可以在函数中查找任何父ID。但是,您甚至不需要。

是的,比使用jquery更好的解决方案!我认为你需要担心兼容性,IE支持CSS子选择器吗?@Andrew-如果你的用户使用的是IE6,那么你是对的-你不能使用子选择器。在这种情况下,您应该给所有父类一个公共类,并依赖于通常的后代选择器。但除非中国是你的目标人口,否则不要支持IE6。@gilly3我完全同意。在回答这些问题时,我倾向于谨慎行事,因为它并不总是说明支持什么,我不想给出一个不起作用的答案。是的,比使用jquery更好的解决方案!我认为你需要担心兼容性,IE支持CSS子选择器吗?@Andrew-如果你的用户使用的是IE6,那么你是对的-你不能使用子选择器。在这种情况下,您应该给所有父类一个公共类,并依赖于通常的后代选择器。但除非中国是你的目标人口,否则不要支持IE6。@gilly3我完全同意。在回答这些问题时,我倾向于谨慎行事,因为它并不总是说明支持什么,我不想给出一个不起作用的答案。谢谢你的指点。总是让我在有小提琴的时候更容易理解答案。谢谢你的小提琴。总是让我在有小提琴的时候更容易理解答案。