使用Javascript获取点击元素的HTML

时间:2012-07-26 00:49:54

标签: javascript

如果点击的元素是容器,我正在为被点击的元素添加一个类并获取它的innerHTML。但如果它是一个HTML元素而不是容器, 例如,如果被点击的元素是图像<img src="hello.png" />(它不是容器而不能使用innerHTML),那么我需要获得相应的元素标记,即我需要得到<img src="hello.png" />。那么无论如何用纯JavaScript做到这一点?

P.S。我不想在这里使用任何JavaScript库。

1 个答案:

答案 0 :(得分:2)

你可以这样做......

<img src="hello.png" onclick="alert(outerHTML)" />

请注意,outerHTML最近才获得Firefox支持。

这可能看起来很奇怪,但确实有效。

DEMO: http://jsfiddle.net/2GLjC/

如果您使用不同类型的处理程序(非内联),您仍然可以使用元素上下文中的outerHTML


获取更多Firefox支持的跨浏览器解决方案可能如下所示......

function getOuterHTML(elem) {
    return elem.outerHTML || document.createElement("div")
                                     .appendChild(elem.cloneNode(true))
                                     .parentNode
                                     .innerHTML
}

所以只需将您的元素传递给getOuterHTML函数,它就会返回正确的结果。

alert(getOuterHTML(this));