2

最初の HTML コード:

<div id="content_4" class="content" style="background:url(pic1.gif)"></div>
<div id="content_4_a" class="content" style="background:url(pic2.gif);
    display:none"></div>

これはJSコードです:

function getOuterHMTL(element){
    return element.outerHTML;
}

function switchDisplayOuter(elementToHide, elementToShow, stringly){
    document.getElementsByName(elementToShow).outerHTML=stringly;
    document.getElementById(elementToHide).style.display="none";
    document.getElementsByName(elementToShow)[0].style.display="";
}

これで、この HTML コードが機能します (クリックすると、div が切り替わり、画像が変わります)。

<area shape="rect" coords="0,252,98,337" onMouseOver="switchDisplayOuter(
    'content_4', 'content_4_a', getOuterHMTL('content_4_a) )">

しかし、これではありません:

<area shape="rect" coords="0,252,98,337" onMouseOver="switchDisplayOuter(
    'content_4', 'content_4_a', '<div id="content_4_a" class="content" 
    style="background:url(pic2.gif); display:none"></div>' )">

Firefox でのデバッグ中にエラー コードが表示されるだけです。

Error: SyntaxError: unterminated string literal
'<div id=

関数 getOuterHMTL(element) を使用せずに「プレーンな」文字列リテラルを使用して正しいコードを知っている人はいますか?

4

1 に答える 1

2

属性値の"内側を次のように置き換える必要があります。onMouseOver\'

<area shape="rect" coords="0,252,98,337" onMouseOver="switchDisplayOuter('content_4', 'content_4_a', '<div id=\'content_4_a\' class=\'content\'  style=\'background:url(pic2.gif); display:none\'></div>' )">

これは、areaタグのonMouseOver属性の値が で囲まれているため"です。

于 2013-02-01T00:58:09.067 に答える