jQuery控制台记录图像源不起作用$(this).find(' img')。attr(' src');

时间:2014-06-08 19:11:33

标签: jquery html find

我正在尝试使用$(this).find('img')。attr('src');

来控制日志图像源。

这是我的HTML

<div id="container">
    <div id="stage">
        <div id="gallery">
            <img class="photo" src="_images/image#1" />
            <img class="photo" src="_images/image#2" />
            <img class="photo" src="_images/image#3" />
            <img class="photo" src="_images/image#4" />                 
        </div>
    </div>
</div>

这是我的JS

function grabIt(){
  var thisImageSrc = $(this).find('img').attr('src');
}

console.log(thisImageSrc)

$('#gallery img').mouseover(grabIt);

我将在更大的函数中使用img源代码,这不在本问题的范围之内。我的目标是在鼠标悬停在图像上时抓取图像源。

我是jQuery的新手,我更容易理解答案代码的长形式,而不是嵌套在函数内部的函数 - 如果可能的话。

谢谢你!

1 个答案:

答案 0 :(得分:1)

console.log语句放在函数中。 thisImageSrc之外的grabIt不存在,console.log之前会调用grabIt

此外,由于您将事件处理程序绑定到图像本身,$(this).find('img')将返回一个空集。图像不能包含其他图像。访问元素本身的src属性。

因此,修复这两件事,你最终会

function grabIt(){
  var thisImageSrc = this.src;
  console.log(thisImageSrc)
}

$('#gallery img').mouseover(grabIt);