我的DOM如下所示:

<div id="d1">
   <div class="c1">
            <a href="#"><img src="img1_on.gif"></a>
            <a href="#"><img src="img2_on.gif"></a>
   </div>
</div>

当有人单击图像时,我希望图像src更改为<img src=“imgx_off.gif”>,其中x表示图像编号1或2。

这是可能的还是我必须使用CSS来更改图像?


当前回答

这是在Vanilla(或简单的Pure)JavaScript中完成任务的保证方法:

var picurl = 'pictures/apple.png';
document.getElementById("image_id").src=picurl;

其他回答

我在这里做了一个完全具有这种功能的代码笔。我也会在这里给你一个代码的分解。

代码笔

$(函数){//倾听女孩按钮的点击$('#girl btn').click(函数){//单击女孩按钮后,将#square图像的源更改为女孩PNG$('#square').prop(“src”,“https://homepages.cae.wisc.edu/~ece533/images/girl.png“);});//聆听飞机按钮的点击$(“#plane btn”).click(函数){//单击平面按钮后,将#square图像的源更改为平面PNG$('#square').prop(“src”,“https://homepages.cae.wisc.edu/~ece533/images/airplane.png“);});//聆听水果按钮的点击$(“#fruits btn”).click(函数){//单击水果按钮后,将#square图像的源更改为水果PNG$('#square').prop(“src”,“https://homepages.cae.wisc.edu/~ece533/images/fruits.png“);});});<script src=“https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js“></script><img src=“https://homepages.cae.wisc.edu/~ece533/images/girl.png“id=”square“/><div><button id=“girl btn”>女孩</button><button id=“plane btn”>平面</button><button id=“fruits btn”>水果</button><a href=“https://homepages.cae.wisc.edu/~ece533/images/“>图像来源</a></div>

希望这能奏效

<img id="dummyimage" src="http://dummyimage.com/450x255/" alt="" />
<button id="changeSize">Change Size</button>
$(document).ready(function() {
    var flag = 0;
    $("button#changeSize").click(function() {
        if (flag == 0) {
            $("#dummyimage").attr("src", "http://dummyimage.com/250x155/");
            flag = 1;
        } else if (flag == 1) {
            $("#dummyimage").attr("src", "http://dummyimage.com/450x255/");
            flag = 0;
        }
    });
});

可以使用jQuery的attr()函数。例如,如果img标记的id属性为“my_image”,则可以执行以下操作:

<img id="my_image" src="first.jpg" alt="Insert link 1 alt text here" />

然后,您可以使用jQuery更改图像的src,如下所示:

$("#my_image").attr("src","second.jpg");

要将其附加到单击事件,可以编写:

$('#my_image').on({
    'click': function(){
        $('#my_image').attr('src','second.jpg');
    }
});

要旋转图像,可以执行以下操作:

$('img').on({
    'click': function() {
         var src = ($(this).attr('src') === 'img1_on.jpg')
            ? 'img2_on.jpg'
            : 'img1_on.jpg';
         $(this).attr('src', src);
    }
});

使用jQuery click()更改图像源

元素:

    <img class="letstalk btn"  src="images/chatbuble.png" />

代码:

    $(".letstalk").click(function(){
        var newsrc;
        if($(this).attr("src")=="/images/chatbuble.png")
        {
            newsrc="/images/closechat.png";
            $(this).attr("src", newsrc);
        }
        else
        {
            newsrc="/images/chatbuble.png";
            $(this).attr("src", newsrc);
        }
    });

我将向您展示如何更改图像src,这样当您单击图像时,它会在HTML中的所有图像中旋转(特别是在d1id和c1类中)。。。无论您的HTML中有2个或更多图像。

我还将向您展示如何在文档准备好后清理页面,以便最初只显示一个图像。

完整的代码

$(function() {

    var $images = $("#d1 > .c1 > a").clone();  

    var $length = $images.length;
    var $imgShow = 0;

    $("#d1 > .c1").html( $("#d1 > .c1 > a:first") );  

    $("#d1 > .c1 > a").click(function(event) { 

        $(this).children().attr("src", 
                        $("img", $images).eq(++$imgShow % $length).attr("src") );
        event.preventDefault();

    });
});

故障

创建包含图像的链接的副本(注意:您还可以使用链接的href属性来添加功能…例如,在每个图像下面显示工作链接):var$images=$(“#d1>.c1>a”).clone();检查HTML中有多少图像,并创建一个变量来跟踪显示的图像:var$length=$images.length;var$imgShow=0;修改文档的HTML,以便只显示第一个图像。删除所有其他图像。$(“#d1>.c1”).html($(“#d1>.c1>a:first”));单击图像链接时绑定要处理的函数。$(“#d1>.c1>a”).click(函数(事件){$(this).children().attr(“src”,$(“img”,$images).eq(++$imgShow%$length).attr(“src“));event.prpreventDefault();});上述代码的核心是使用++$imgShow%$length循环遍历包含图像的jQuery对象++$imgShow%$length首先将计数器增加1,然后将该数字与图像的数量进行比较。这将使生成的索引从0循环到长度-1,这是$images对象的索引。这意味着该代码可以处理2、3、5、10或100个图像。。。按顺序循环通过每个图像,并在到达最后一个图像时在第一个图像处重新开始。此外,.attr()用于获取和设置图像的“src”属性。为了从$images对象中选择元素,我使用表单$(选择器,上下文)将$images设置为jQuery上下文。然后,我使用.eq()选择具有我感兴趣的特定索引的元素。


jsFiddle示例,包含3个图像

您还可以将src存储在阵列中。jsFiddle示例,包含3个图像

下面是如何将图像周围的锚标记中的hrefs合并在一起:jsFiddle示例