Javascript 为什么身份证没有改变?

Javascript 为什么身份证没有改变?,javascript,html,css,getelementbyid,Javascript,Html,Css,Getelementbyid,我正试图改变文本的颜色。为此,我使用JavaScrip更改div标记上的id,以便应用不同的CSS规则 home.html <html> <head> <link rel="stylesheet" type="text/css" href="style-original.css" /> <meta charset="utf-8" /> <title>test</title&g

我正试图改变文本的颜色。为此,我使用JavaScrip更改
div
标记上的
id
,以便应用不同的CSS规则

home.html

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style-original.css" />
        <meta charset="utf-8" />
        <title>test</title>
        <script type="text/javascript">
        <!--
            function change()
            {
                document.getElementById("part1").className = "part2"
            }
        //-->
        </script>
    </head>
    <body>
        Hello.<br />
        <div id="part1">Test test.</div><br />
        <input type='button' onclick='change()' value='Form Checker' />
    </body>
</html>

单击按钮时颜色不变。有什么问题?问题是正在更改
className
,我应该在哪里更改
id
。这是一个巨大的“肥胖”时刻。

你有问题。在javascript函数change()中

而不是这条线

document.getElementById("part1").className = "part2"
应该是这样的

document.getElementById("part1").id = "part2"
这是因为您需要更改类名而不是元素的id。 请查看此处的固定代码:
您遇到了一个问题。在javascript函数change()中

而不是这条线

document.getElementById("part1").className = "part2"
应该是这样的

document.getElementById("part1").id = "part2"
这是因为您需要更改类名而不是元素的id。 请查看此处的固定代码:

要使其工作,最简单的工作量是将
change()
函数更改为:

document.getElementById("part1").id = "part2"

但是,您需要跟踪当前id,否则
change()
函数将无法再次找到该元素。

要使其正常工作,最简单的工作量是将
change()
函数更改为:

document.getElementById("part1").id = "part2"

但是,您需要跟踪当前id,否则
change()
函数将无法再次找到元素。

您正在更改的类的特殊性小于id。保留该id比添加类更重要,虽然在您的示例中,您指定了另一个ID而不是类。

您正在更改一个没有ID那么特殊的类。保留该ID比添加类更重要,尽管在您的示例中,您指定了另一个ID而不是类。

首先,您想要的行为有点不清楚。也就是说,这是我的解释

在我看来,以上这些都不是很好的选择,因为它们没有解决id/类的意图。Id是特定dom元素的唯一标识符。因此,不建议对其进行更改。我建议您将样式更改为引用类而不是ID。然后,您可以使用id(part1和part2)获取每个元素,并为元素指定一个类名(即redText、purpletText),并将所需样式绑定到该类

document.getElementById("part1").className = "redText"; 

令人困惑的是,你的命名并没有表明你想要完成什么(第1部分到底是什么意思,为什么它是这样命名的)。用这样一种方式来命名事物总是一个好主意,这样别人就可以跟随你的想法

首先,您想要的行为有点不清楚。也就是说,这是我的解释

在我看来,以上这些都不是很好的选择,因为它们没有解决id/类的意图。Id是特定dom元素的唯一标识符。因此,不建议对其进行更改。我建议您将样式更改为引用类而不是ID。然后,您可以使用id(part1和part2)获取每个元素,并为元素指定一个类名(即redText、purpletText),并将所需样式绑定到该类

document.getElementById("part1").className = "redText"; 

令人困惑的是,你的命名并没有表明你想要完成什么(第1部分到底是什么意思,为什么它是这样命名的)。用这样一种方式来命名事物总是一个好主意,这样别人就可以跟随你的想法

您真的需要更改id吗?我建议您改为更改类(这是您当前在示例中所做的)。这样,您就不需要跟踪当前id,并且仍然可以更改样式


找到一个工作示例。

您真的需要更改id吗?我建议您改为更改类(这是您当前在示例中所做的)。这样,您就不需要跟踪当前id,并且仍然可以更改样式


找到一个工作示例。

您正在更改类,而不是ID?您意识到您正在设置
类名,而不是
ID
,对吗?^==我很确定这是最糟糕的方法。你试图更改“className”而不是“id”@leish我当然希望你指的是一条已经被删除的评论,而不是懒得告诉我“更好的方法”你在更改类,而不是id?你意识到你在设置
className
,不是
id
,对吗?^==我很确定这是最糟糕的方法。你试图更改“className”而不是“id”@leish我当然希望你指的是一条已被删除的评论,而不是懒得告诉我“更好的方法”,所以唯一的问题是命名?我在测试这个概念,所以我没有名字给他们。你指的是一个更大的问题吗?+1因为你对我答案的理解更详细:)所以唯一的问题是命名?我在测试这个概念,所以我没有名字给他们。你指的是更大的问题吗?+1,因为你对我的回答更详细:)