我有简单的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;
我在这里做错了什么?
答案 0 :(得分:6)
<img>
不是兄弟,而是锚的孩子。
请改为尝试:
$('a').click(function (event){
var linkID = $(this).attr("id");
var imgSrcVal = $('img', this).attr("src");
//alert(imgSrcVal);
return false;
})
答案 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'))
});
答案 3 :(得分:2)
该示例中的img
标记不是a
标记的兄弟,它是一个孩子。因此,要获取src
属性的值,您需要$(this).children("img").attr("src")