Javascript 如何在单个onclick上同时获得映像名和src?

Javascript 如何在单个onclick上同时获得映像名和src?,javascript,Javascript,这是可能的,一次点击一个图像就可以同时获得图像名和src吗 我不熟悉javascript和php <script language="javascript" type="text/javascript"> function SetImageName(strName) { document.getElementById("ImageName").value = strName; } </script> <div id="Images"> &l

这是可能的,一次点击一个图像就可以同时获得图像名和src吗

我不熟悉javascript和php

 <script language="javascript" type="text/javascript">
 function SetImageName(strName)
 {
 document.getElementById("ImageName").value = strName;
 }
 </script>

 <div id="Images">

 <img src="images/image1.jpg" name="image1.jpg" onclick="SetImageName(this.name)"/></a>
 <img src="images/image2.jpg" name="image2.jpg" onclick="SetImageName(this.name)"/>

 </div><input type="hidden" value="" id="ImageName" name="ImageName"/>

可能吗?当然

在html标记中:

onclick="SetImageName(this)"
然后在你的JS中:

function SetImageName(imgElement) {
    var theName = imgElement.name;
    var theSrc = imgElement.src;
    // etc.

也就是说,在调用SetImageName时,使用this传递对单击元素本身的引用,而不仅仅是使用this.name传递其名称。然后,在您的函数中,您可以根据需要访问其任何和所有属性。

是否可能?当然

在html标记中:

onclick="SetImageName(this)"
然后在你的JS中:

function SetImageName(imgElement) {
    var theName = imgElement.name;
    var theSrc = imgElement.src;
    // etc.

也就是说,在调用SetImageName时,使用this传递对单击元素本身的引用,而不仅仅是使用this.name传递其名称。然后,在您的函数中,您可以根据需要访问其任何和所有属性。

当用户单击图像时,函数SetImageName将通过以下方式调用:

onclick="SetImageName(this)"
意思是:

<img src="images/image1.jpg" name="image1.jpg" onclick="SetImageName(this)"/>

SetImageName函数实现当用户单击函数SetImageName调用的图像时,您将通过image.name和image.src获取图像的名称和src:

onclick="SetImageName(this)"
意思是:

<img src="images/image1.jpg" name="image1.jpg" onclick="SetImageName(this)"/>

SetImageName函数实现您将通过image.name和image.src获取图像的名称和src

您可以使用此函数获取图像的“src”:

 document.getElementById("imagename").src
所以你的代码应该是:

<script language="javascript" type="text/javascript">
    function SetImageProperties(control)
    {
        // Populate hidden fields with properties of the control
        document.getElementById("ImageName").value   = control.name;
        document.getElementById("ImageSource").value = control.src;
    }
 </script>

 <div id="Images">

 <img src="images/image1.jpg" name="image1.jpg" onclick="SetImageProperties(this)"/>
 <img src="images/image2.jpg" name="image2.jpg" onclick="SetImageProperties(this)"/>

 </div><input type="hidden" value="" id="ImageName"   name="ImageName"/>
 </div><input type="hidden" value="" id="ImageSource" name="ImageSource"/>
而不是

 this.name

您正在传递对整个DOM对象的引用。然后,您可以单独使用每个属性,如上面修改的代码所示。

您可以使用此函数获取图像的“src”:

 document.getElementById("imagename").src
所以你的代码应该是:

<script language="javascript" type="text/javascript">
    function SetImageProperties(control)
    {
        // Populate hidden fields with properties of the control
        document.getElementById("ImageName").value   = control.name;
        document.getElementById("ImageSource").value = control.src;
    }
 </script>

 <div id="Images">

 <img src="images/image1.jpg" name="image1.jpg" onclick="SetImageProperties(this)"/>
 <img src="images/image2.jpg" name="image2.jpg" onclick="SetImageProperties(this)"/>

 </div><input type="hidden" value="" id="ImageName"   name="ImageName"/>
 </div><input type="hidden" value="" id="ImageSource" name="ImageSource"/>
而不是

 this.name

您正在传递对整个DOM对象的引用。然后,您可以单独使用每个属性,如上面修改的代码所示。

您考虑过使用jQuery吗?或者您的首选解决方案需要纯js吗?为什么需要src和name?在您的示例中,名称包含在src.David Hoerster中。对我的意图是在同一页中再次回显图像。。。。这可能吗?您考虑过使用jQuery吗?或者您的首选解决方案需要纯js吗?为什么需要src和name?在您的示例中,名称包含在src.David Hoerster中。对我的意图是在同一页中再次回显图像。。。。这可能吗?