-2

クリックされた要素がコンテナの場合、クリックされた要素にクラスを追加し、その innerHTML を取得しています。しかし、それがコンテナーではなく HTML 要素である場合、たとえば、クリックされた要素が画像<img src="hello.png" />(コンテナーではなく、innerHTML を使用できない) である場合、対応する要素タグを取得する必要があります。つまり、取得する必要があります。<img src="hello.png" />. とにかく純粋な JavaScript でこれを行うには?

PS ここでは JavaScript ライブラリを使用したくありません。

4

1 に答える 1

2

あなたはこのようにすることができます...

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

outerHTML最近 Firefox のサポートを得たばかりであることに注意してください。

これは奇妙に見えるかもしれませんが、機能します。

デモ: 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));
于 2012-07-26T00:59:47.483 に答える