Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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列表中一个元素的CSS_Javascript_Jquery_Html_Css - Fatal编程技术网

更改javascript列表中一个元素的CSS

更改javascript列表中一个元素的CSS,javascript,jquery,html,css,Javascript,Jquery,Html,Css,所以我用javascript创建了一个导航栏无序列表,里面有几个常规列表。我想使用导航栏中的最后一个列表元素来切换另一个元素的可见性和不透明度。到目前为止,我一直在使用这个: 李:最后一个孩子:悬停~测试{ 不透明度:0!重要; } 我想要切换的元素是一个用id Test标记的div。在结构上,我的代码是: <body onload="javascript that makes the menu..."> <div id="menu" //this houses the

所以我用javascript创建了一个导航栏无序列表,里面有几个常规列表。我想使用导航栏中的最后一个列表元素来切换另一个元素的可见性和不透明度。到目前为止,我一直在使用这个:

李:最后一个孩子:悬停~测试{ 不透明度:0!重要; } 我想要切换的元素是一个用id Test标记的div。在结构上,我的代码是:

<body onload="javascript that makes the menu...">
    <div id="menu" //this houses the li elements that are created by the javascript></div>
    <div id="test">
但是由于某种原因,我修改测试元素的代码没有任何效果。但是,如果我尝试更改最后一个列表元素本身的样式,则效果很好


如何修复此CSS,使其实际影响测试元素

如果希望某个元素上的悬停事件影响不是原始元素子元素的另一个元素,则需要使用javascript

CSS

编辑:您需要确保在HTML之后包含jQuery,或者将其包装在就绪块中

jQuery


我很困惑。如果您试图避免使用Javascript/jQuery,为什么要将它们放在标记和标题中?HTML中没有li元素,因此它与选择器不匹配。我猜您实际上是使用id测试命名多个元素,id测试无效,只会影响在DOM中找到的第一个元素。编辑问题,不要试图将代码放在注释中。常规同级选择器~仅在下游工作,即在与选择器匹配的元素后面的同级。如果测试发生在上游,即使在同一个父级中,它也不会工作。似乎您正试图向上横切一级到父菜单并选择其同级测试。使用CSS无法实现这一点。我尝试了这一点,但在检查时收到以下错误消息:TypeError:$。。。是null test.html:191:4,与jQuery的开头行相同。这可能是我的Javascript不同部分之间相互作用的结果吗?@javascriptwillbetheendofme请参见编辑,在HTML添加到DOM之前,您可能已经运行了脚本,但这也不起作用。或者我想的和你刚才说的完全不同。这里有一些,也许会有帮助?
.transparent{
opacity: 0 !important;
}
$(document).ready(function () {
    $('li:last-child').hover(function () {
        $('#test').addClass('transparent'); //mouseover
    }, function () {
        $('#test').removeClass('transparent'); //mouseout
    });
});