我需要在最近的 div中使用类名“asd”获取图像的src,但我一直得到“undefined”返回。这是我的代码:
HTML
<div class="asd">
<img src="https://www.google.com/images/srpr/logo11w.png" alt="test">
</div>
<button type="button" onclick="show()" >test</button>
的Javascript
function show(){
var url = jQuery(this).closest('.asd').find("img").attr("src");
alert(url);
}
这有效:$('.asd').find('img').attr('src');
但不是我需要的。我需要它是最接近的div。我做错了什么?
答案 0 :(得分:0)
答案 1 :(得分:0)
prev()
可以解决问题:
jQuery("#btn").click(function(){
var url = jQuery(this).prev('.asd').find("img").attr("src");
alert(url);
});
答案 2 :(得分:0)
答案 3 :(得分:0)
这是指窗口对象,需要传递一个引用:
<button type="button" onclick="show(this)" >test</button>
然后,你可以这样做:( closest
在dom树中旅行,而不是它的兄弟姐妹)
function show(button){
var url = jQuery(button).prev('.asd').find("img").attr("src");
console.log(url);
}
答案 4 :(得分:0)
一种解决方案是将this
作为参数传递:
<button type="button" onclick="show(this)" >test</button>
并在 js :
window.show = function(obj){
var url = $(obj).prev().children("img").attr("src");
}
如果您想使用closest
,则必须将html结构更改为以下内容:
<div class="asd">
<img src="https://www.google.com/images/srpr/logo11w.png" alt="test" />
<button type="button" onclick="show(this)" >test</button>
</div>
<强> JS 强>
window.show = function(obj){
var url = $(obj).closest(".asd").children("img").attr("src");
}
<强>参考强>
this
指的是DOM元素。