Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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 在img onmouseover函数中使用this和document.getElementById_Javascript_Html_Onmouseover_Onmouseout - Fatal编程技术网

Javascript 在img onmouseover函数中使用this和document.getElementById

Javascript 在img onmouseover函数中使用this和document.getElementById,javascript,html,onmouseover,onmouseout,Javascript,Html,Onmouseover,Onmouseout,我正在尝试使用onmouseover和onmouseout来更改h2中的图像和文本,如图中所示 我在下面给出了一些示例,其中我可以使用onmouseover和onmouseout使用this或document.getElementById来更改图像,但当我使用this时,我无法想出如何同时更改h2标记内的文本(如document.getElementById下的示例中所示)。使用以下代码段不会更改图像 onmouseover='(function(){ this

我正在尝试使用
onmouseover
onmouseout
来更改h2中的图像和文本,如图中所示

我在下面给出了一些示例,其中我可以使用
onmouseover
onmouseout
使用
this
document.getElementById
来更改图像,但当我使用
this
时,我无法想出如何同时更改h2标记内的文本(如
document.getElementById
下的示例中所示)。使用以下代码段不会更改图像

onmouseover='(function(){
                this.src="https://i.imgur.com/dsF2mgL.jpg"
                document.getElementById("message").innerHTML="I am so very tired"
            })()'
我正在寻找一种使用
并更改h2中的图像和文本的方法


使用
document.getElementById

冰14:德雷克鸭
我是一只鸭子。不要在
onclick
属性中使用IIFE,因为
这个
不是由函数继承的(除非使用箭头函数)。您可以直接将代码放入
onclick
属性中,而不使用函数包装器

冰14:德雷克鸭
我是一只鸭子。不要在
onclick
属性中使用IIFE,因为
这个
不是由函数继承的(除非使用箭头函数)。您可以直接将代码放入
onclick
属性中,而不使用函数包装器

冰14:德雷克鸭
我是德雷克鸭子。这个关键字本身并不能让你走得更远,因为它只是对导致事件的元素的引用,即


我是德雷克鸭子。
这个关键字本身并不能让你走得更远,因为它只是对导致事件的元素的引用,即


我是德雷克鸭子。
使用
nextElementSibling
选择器来选择它

冰14:德雷克鸭
我是德雷克鸭子。使用
nextElementSibling
选择器来选择它

冰14:德雷克鸭
我是德雷克鸭子。你肯定不想要
getElementById
。当浏览器引发事件时,它会传递给你一个事件对象,因此你也不需要
这个
函数(事件){var img=event.target;var h2=img.previousSibling;}
。这种检索H2的方法的问题在于它很残酷。如果您的标记结构发生更改,它将fail@rayhatfield在“使用
this
下的示例中,您肯定不需要
getElementById
。当浏览器引发事件时,它会向您传递一个事件对象,因此您不需要
this
either.
function(event){var img=event.target;var h2=img.previousSibling;}
。这种检索h2的方法的问题在于它很残酷。如果标记结构发生更改,它将fail@rayhatfield在“使用
下”的示例中