Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.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在单击时更改颜色并保持相同的颜色_Javascript_Css_Colors_Background Color - Fatal编程技术网

Javascript在单击时更改颜色并保持相同的颜色

Javascript在单击时更改颜色并保持相同的颜色,javascript,css,colors,background-color,Javascript,Css,Colors,Background Color,我目前拥有以下代码: <li><a href="index.php" id="1" onclick="document.getElementById('1').style.background = '#8B4513';">Weblog</a></li> 这会改变颜色,但因为它打开index.php,颜色不会保持相同的颜色。它将恢复为原始颜色 如何在不同的页面中保持相同的颜色 谢谢开始,ID不能以数字开头 您必须在服务器端捕获所选页面,并为其提

我目前拥有以下代码:

<li><a href="index.php" id="1" onclick="document.getElementById('1').style.background = '#8B4513';">Weblog</a></li>
  • 这会改变颜色,但因为它打开index.php,颜色不会保持相同的颜色。它将恢复为原始颜色

    如何在不同的页面中保持相同的颜色


    谢谢开始,ID不能以数字开头

    您必须在服务器端捕获所选页面,并为其提供一个类似selected的类,然后使用CSS执行以下操作:

    li.selected a
    {
        background: #8B4513;
    }
    

    如果您不知道如何使用PHP设置所选页面,请阅读本文:

    从代码中可以看出,在用户单击链接后,您正在尝试设置元素的样式

    这里似乎没有必要使用Javascript。我只需要使用:visted css伪类来设置元素的样式

    比如,

    a:visited { text-decoration: line-through; }
    

    Javascript是客户端,这意味着所做的任何更改都会以某种方式在用户屏幕上发生

    PHP是服务器端的。您向服务器发送请求,服务器将处理该请求并显示输出

    如果你想突出显示当前网页,这不是方法

    我建议您在
    li a
    -列表中的每个文件上添加一行PHP。例如:

    <?php if ($URL == 'index.php') echo 'class="selected"'; ?>
    
    
    

    并使用CSS将链接与类中选定的红色链接关联起来。

    您指的是访问链接的颜色吗?简单的解决方案是使用cookie跟踪此类选择。加载新页面时,您可以检查标志并设置颜色。如果我单击了另一个链接,我单击的上一个链接是否会恢复到原始颜色?还是保留它的“点击”颜色?因为访问的链接和选择的链接有不同的实现和效果,而你的问题听起来有点两者兼而有之。在HTML5中,
    id
    可能以数字开头。这是一个坏习惯,所以实际上不是。