这个对象" undefined"

时间:2014-10-26 18:24:39

标签: jquery html undefined this

我试过环顾四周,似乎无法找到相同的案例,所以这就是我的问题:

任何人都可以帮我解决这个简单的错误。 Jquery不是我最强的套房,但我觉得这是一个我想念的小东西。使用下面的代码,我得到错误' undefined'。

HTML:

<a href='#' ><img src= "./images/1.jpg"  width= '200px'  id="2" rel="arm1" onclick = 'test()' /></a>

Jquery的:

function test(){
    alert($(this).html());
};

我想要的是点击img标签的HTML代码。还有另一种方法吗?

所以我尝试了以下内容并且它也不起作用:我已经将onclick添加到ahref标签中。(错误:未定义)我试过路过&#39;事件&#39;作为参数。 (尝试获取其html()时,错误说明&#39;事件&#39;未声明)。

PS我不想将id用作onclick函数!

Anyhelp将非常感谢!

谢谢!

2 个答案:

答案 0 :(得分:2)

好的,这就是你如何获取图片HTML:

function test(obj) {
    alert($(obj).parent().html());
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<a href="#">
    <img src= "http://lorempixel.com/100/100" onclick="test(this)" width="200px" id="2" rel="arm1" />
</a>

如您所见,您可以将当前图像对象传递给this单击处理程序。从那里你转到父元素(a)并阅读它的HTML内容,这将是一个图像HTML。

UPD。 t.niese在评论中有一个关于outerHTML的观点,它有很好的支持,所以理想的代码看起来像:

alert(obj.outerHTML);

答案 1 :(得分:1)

this函数中的

test()指的是Window。要访问单击的元素,请尝试以下操作:

HTML:

<element onclick='test(this)' />

JS:

function test(element){
    alert(element.innerHTML);
};

虽然点击<img>不会显示任何内容,因为其innerHTML将为空。

修改:正如dsfq所说,alert(element.outerHTML)会向您显示图片的HTML。