jQuery如何在href中选择img src

时间:2011-12-02 23:04:21

标签: jquery siblings

我有简单的html,如下所示:

<div class="img">
      <a target="_blank" href="kl_big.htm" id="turn-of-cloth-01_lg">
      <img src="images/galery/turn-of-cloth-01_lg.jpg"   width="110" height="90" />
      </a>
      <div class="desc">Add a description of the image here</div>
    </div>

我有20套这个div有不同的ID,现在href id im gtting with this

$(document).ready(function(){
    $('a').click(function (event){

        event.preventDefault();
        var linkID =$(this).attr("id"); 
    });
});

我不知道什么是img对象id,但我需要得到它的src值。 我试着和Jquery一样:

var imgSrcVal = $(this).siblings("img").attr("src");

但是如果没有结果,也会在click事件中尝试但是再次没有结果:

imgSrcVal = this.nextSibling.src;   

我在这里做错了什么?

4 个答案:

答案 0 :(得分:6)

<img>不是兄弟,而是锚的孩子。

请改为尝试:

$('a').click(function (event){
    var linkID = $(this).attr("id"); 
    var imgSrcVal = $('img', this).attr("src");
    //alert(imgSrcVal);
    return false;
})

Simple JSFiddle demo

答案 1 :(得分:3)

img是嵌套的,因此请使用.find().children()

var imgSrcVal = $(this).find("img").attr("src");
  • .find()查看所有后代

  • .children()仅查看直系后代


或使用原生DOM方法:

var imgSrcVal = this.getElementsByTagName('img')[0].src;

[0]是因为getElementsByTagName返回类似数组的集合。所以[0]获得了第一个找到的元素。

答案 2 :(得分:3)

我认为这就是你想要的。图像是锚标记的子图,而不是兄弟图像。

  $('a').click(function (event){
        event.preventDefault();
        var linkID =$(this).attr("id"); 
         alert($(this).children('img').attr('src'))
    });

查看this fiddle

答案 3 :(得分:2)

该示例中的img标记不是a标记的兄弟,它是一个孩子。因此,要获取src属性的值,您需要$(this).children("img").attr("src")