4

ユーザーが選択ドロップダウン ボックスのオプションを変更すると、div タグの innerhtml を切り替える JavaScript 関数があります。

テキストではすべて正常に機能しますが、画像タグでは機能しなくなりますか?

作業例...

function toggle(opt) {
        var d = document.getElementById('div_tag');
        if (opt == '5') {
                d.innerHTML = 'FIVE';
        }
        else if (opt == '4') {
                d.innerHTML = 'FOUR';
        }
        etc...
}

動作しない例...

function toggle(opt) {
        var d = document.getElementById('div_tag');
        if (opt == '5') {
                d.innerHTML = '<img src='path/img1.jpg'><img src='path/img2.jpg'>';
        }
        else if (opt == '4') {
                d.innerHTML = '<img src='path/img2.jpg'><img src='path/img1.jpg'>';
        }
        etc...
}

これは、select タグと div タグにあるものです。

<select onchange='toggle(this.value);'>
<div id='div_tag'></div>

ここで私が間違っていることを誰かに教えてください。私は困惑しています..なぜ一方が機能し、もう一方がテキストであるという違いがあるのに、もう一方が機能しないのですか??

ありがとう。

4

2 に答える 2

8

画像パスを囲む引用符をエスケープするのを忘れていて、文字列を正しく読み取っていないように思えます。これを試してください

function toggle(opt) {
    var d = document.getElementById('div_tag');
    if (opt == '5') {
            d.innerHTML = '<img src=\'path/img1.jpg\'><img src=\'path/img2.jpg\'>';
    }
etc...
于 2012-06-29T17:16:21.050 に答える
1

'これらの変更を"行い、最初と最後に置き換えます。

function toggle(opt) {
        var d = document.getElementById('div_tag');
        if (opt == '5') {
                d.innerHTML = "<img src='path/img1.jpg'><img src='path/img2.jpg'>";
        }
        else if (opt == '4') {
                d.innerHTML = "<img src='path/img2.jpg'><img src='path/img1.jpg'>";
        }
        etc...
}

実際には、二重引用符ではなく一重引用符を使用していました。path/img1.jpgpath/img2.jpg以前は文字列の一部として扱われていませんでした。それが問題でした。

UPDATE あなたのphpの問題については、これを行います:

function toggle(opt) {
        var d = document.getElementById('div_tag');
        if (opt == '5') {
                d.innerHTML = '<img src='+'path/img1.jpg'+'><img src='+'path/img2.jpg'+'>';
        }
        else if (opt == '4') {
                d.innerHTML = '<img src='+'path/img2.jpg'+'><img src='+'path/img1.jpg'+'>';
        }
        etc...
}
于 2012-06-29T17:15:14.213 に答える