Javascript 如何在单击时更改特定div的背景

Javascript 如何在单击时更改特定div的背景,javascript,html,css,Javascript,Html,Css,注意:我不知道jQuery,所以请不要给我如何使用jQuery的答案 我有多个div。我想知道如何使用JavaScript访问它并更改其特定颜色 我不是在寻找像document.getElementsByTagName(“div”)[0]这样的解决方案,因为它需要为每个div输入一个单独的数字 我希望有这样一个简单的解决方案 <div onClick="change();"><h1>Hi</h1><div> <div onClick="cha

注意:我不知道jQuery,所以请不要给我如何使用jQuery的答案

我有多个div。我想知道如何使用JavaScript访问它并更改其特定颜色

我不是在寻找像
document.getElementsByTagName(“div”)[0]
这样的解决方案,因为它需要为每个div输入一个单独的数字

我希望有这样一个简单的解决方案

<div onClick="change();"><h1>Hi</h1><div>
<div onClick="change();"><h1>Hi</h1><div>       
<div onClick="change();"><h1>Hi</h1><div>   

<script>
        function change(){
            this.style.backgroundColor = "red";
        }
</script>
Hi
你好
你好
函数更改(){
this.style.backgroundColor=“红色”;
}

由于您不想学习jQuery(或者可能是非内联事件),请考虑:

<div onclick="change(this)"><h1>Hi Dave!</h1></div>   <!-- use closing tags -->
<div onclick="change(this)"><h1>Hi Thomas!</h1></div>   

function change(elm) {
    elm.style.backgroundColor = 'red'
}
你好,戴夫! 嗨,托马斯! 功能改变(elm){ elm.style.backgroundColor='red' } 请注意,内联事件处理程序代码(在属性中指定)的上下文(
this
)是作为事件目标的元素-在这种情况下,它将是被单击的特定DIV元素。然后,我们只需将元素传递到回调函数中,这样我们就可以通用地使用它

此外,在初始标记中,div元素没有关闭,导致嵌套。通过更正,用户可以完成任务。(小提琴代码分配给
窗口。直接更改
,但在其他方面是相同的概念。)



当然,学习jQuery(或其他)高级框架可能会很快获得回报。使用内联事件处理程序是。。非常“老派”。

这会更容易

<div onclick="changeColor(this)">Some text!</div>
<p>A paragraph, that will have no change by click</p>
这将更改
div
的背景色,而不是
。您可以使用此jQuery代码为任何元素设置任何css值


然而,对我来说,jQuery非常简单!:)但如你所愿。

试着在引号中加上“红色”。这是一个值,不是常数,这不是问题所在。代码只是我想要的一个例子。这根本是错误的,不起作用。出现的错误是无法更改未定义的样式。@Zachooz jquery对于初学者来说更容易学习。只要看看w3schools,你就会发现它有多么简单。谢谢,我会看看的。+1学习javascript而不是JQueryum,我不知道什么是非内联事件。为什么在未使用更改函数时会出现evt?也不是我不想学习jQuery,只是我以后会学习它。我想先在其他方面做得更好。当我单击其中一个时,它会更改所有div标记的颜色,而不是我单击的那一个,因为初始标记无效(那些不是结束标记,因此div是嵌套的!)。我已经确定了我的答案。再试一次。很抱歉,w3schools.com是我开始学习的地方,几周后我开始使用这个网站asp.net:)但是,对于链接,我很抱歉!:)我会努力改变的。不必抱歉,你现在知道这一点很重要。永远不会太晚。:)
function changeColor(div) {
  div.style.backgroundColor = #hexvalue
}