Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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,谢谢,这里的初学者 格式在JSFIDLE中不起作用,但这与我的问题无关 以下是我所拥有的: 我想做的是,当单击红色div时,将h1文本和导航栏中所有蓝色的元素都更改为红色 $(document).ready(function(){ $('.colorred').click(function(){ $('.over', '#thispage').css({"background-color", "#821122"}); $('h1', '.nav').css

谢谢,这里的初学者

格式在JSFIDLE中不起作用,但这与我的问题无关

以下是我所拥有的:

我想做的是,当单击红色div时,将h1文本和导航栏中所有蓝色的元素都更改为红色

$(document).ready(function(){
    $('.colorred').click(function(){
        $('.over', '#thispage').css({"background-color", "#821122"});
        $('h1', '.nav').css({"color", '#821122'});
    });
});

目前所发生的一切是,它使我所指的元素永远不会出现,它们会消失

选择器和css方法参数中的逗号有问题

这是您的代码:

$('.over', '#thispage').css({"background-color", "#821122"});
$('h1', '.nav').css({"color", '#821122'});
我就是这样做的:

$('.over, #thispage').css("background-color", "#821122");
$('h1, .nav').css("color", '#821122');
因此,如果您需要多个选择器,只需添加逗号,不要使用两个不同的参数

然后,css。作为参数,您可以指定键、值(我已指定)或对象(您尝试执行),但正确的语法是:

$('h1, .nav').css({"color": '#821122'});
对于多个规则:

$('h1, .nav').css({"color": '#821122', "background-color": "#821122"});

在这里查看它的工作情况:

您可以使用JavaScript来完成此操作,无需使用JQuery

我在大学里做了一个简单的HTML颜色改变项目,你必须做完全相同的事情

<div class="javascriptcolours">
    <a href=javascript:void(0) onClick="changeBgcolor('#333333'); changeColor('#000000'); changeText('#ffffff'); changeBanner('images/banner.png'); changeHeader('images/cost_header.png'); changeMedia('images/cost_media.png'); changeLinkbox1('images/nav_plot.png'); changeLinkbox2('images/nav_director.png'); changeLinkbox3('images/nav_actors.png'); changeLinkbox4('images/nav_location.png'); changeLinkbox5('images/nav_cost.png'); changeFoot('#000000'); changeLinks('#808080');"><img src="Images/black.png" alt="Black" /></a>
    <a href=javascript:void(0) onClick="changeBgcolor('#999999'); changeColor('#ffffff'); changeText('#000000'); changeBanner('images/banner_white.png'); changeHeader('images/cost_header_black.png'); changeMedia('images/cost_media_white.png'); changeLinkbox1('images/nav_plot_white.png'); changeLinkbox2('images/nav_director_white.png'); changeLinkbox3('images/nav_actors_white.png'); changeLinkbox4('images/nav_location_white.png'); changeLinkbox5('images/nav_cost_white.png'); changeFoot('#ffffff'); changeLinks('#808080');"><img src="Images/white.png" alt="White" /></a>
    <a href=javascript:void(0) onClick="changeBgcolor('#a00000'); changeColor('#ff3332'); changeText('#ffffff'); changeBanner('images/banner_red.png'); changeHeader('images/cost_header.png'); changeMedia('images/cost_media_red.png'); changeLinkbox1('images/nav_plot_red.png'); changeLinkbox2('images/nav_director_red.png'); changeLinkbox3('images/nav_actors_red.png'); changeLinkbox4('images/nav_location_red.png'); changeLinkbox5('images/nav_cost_red.png'); changeFoot('#ff3332'); changeLinks('#ff9999');"><img src="Images/red.png" alt="red" /></a>
</div>

只要html代码顶部的onClick和JS文件中的函数相同,那么在您的情况下,您可能希望将其称为changeBgcolor而不是changeColor。

感谢您解决了这个问题,但现在我遇到了另一个问题,“.over”悬停函数似乎没有改变背景颜色?单击红色div后,背景仍将更改为。这附近有人吗?没问题。这是因为您将样式直接添加到元素中。相反,我建议您向nav元素添加一个类,并使用CSS定义所有组合。这样,一切都会成功。
<img src="Images/red.png" alt="red" />
function changeColor(colorIn)
    {
        document.getElementById("navigation").style.backgroundColor = colorIn;
        document.getElementById("maininfo").style.backgroundColor = colorIn;
        document.getElementById("mediaframe").style.backgroundColor = colorIn;
    }