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