jquery获取img src onclick事件

时间:2014-09-17 12:28:22

标签: javascript jquery html

我无法在onclick evet上找到一张图片。

我的例子是"这个"引用指向具有几个图像的元素,我想更改特定图像。

<li  class = "header_det">
    <table  width="100%" style="font-size:14px;"> 
        <tr>                                      
            <td  width="10%" align = "right" rowspan = "2">text</td>
            <td width="80%"><img width="30" height="30" src="images/map_white_pin.png" ></a></td>                                                                               
            <td width="10%" align = "center" class = "header_pic"><img width="20" height="20"     src="images/route_det/down_arrow.png" ></td>                
        </tr>                                                                           
    </table>
</li>

onclick事件的js代码是:

$(".header_det_map").click(function() {
    var img_type = $(this).attr(".header_pic img").attr("src") ;
    if(img_type == "images/route_det/down_arrow.png") { 
        $(this).attr(".header_pic img").attr('src', "images/route_det/up_arrow.png");         
    } else{
        $(this).attr(".header_pic img").attr('src', "images/route_det/down_arrow.png");
    }
});

这段代码不起作用,我必须使用这个指针,因为我有其他

  • 元素,它具有我想做的相同类。

    感谢名单

  • 2 个答案:

    答案 0 :(得分:2)

    我认为这一行:

    var img_type = $(this).attr(".header_pic img").attr("src") ;
    

    应该是:

    var img_type = $(this).find(".header_pic img").attr("src") ;
    

    答案 1 :(得分:1)

    你所有的jquery都是错误的:.header_pic img不是属性,而是.header_det_map的元素

    另外,你的HTML有点乱:

    • 您的属性名称和值之间不应该有空格 HTML
    • 结束</a>代码
    • 您应该关闭'<img />代码

    <li class="header_det">
        <table width="100%" style="font-size:14px;"> 
        <tr>                                      
            <td width="10%" align="right" rowspan="2">text</td>
            <td width="80%">
                <img width="30" height="30" src="images/map_white_pin.png" />
            </td>                                                                             
            <td width="10%" align="center" class="header_pic">
                <img width="20" height="20" src="images/route_det/down_arrow.png" />
            </td>                  
        </tr>                                                                           
        </table>
    </li>
    

    $(".header_det_map").click(function() {
        var img = $(this).find(".header_pic img"); // use a variable to store your image element in case you have to change the container class
        var img_type = img.attr("src"); // not necessary to store it, could be use as it in the if statement
    
        if(img.attr("src") == "images/route_det/down_arrow.png") { 
            img.attr("src", "images/route_det/up_arrow.png");         
        } else {
            img.attr("src", "images/route_det/down_arrow.png");
        }
    });