4

好的,我有一个javascript函数,当用户更改选择下拉框的选项时,它会切换div标签的innerhtml。

这一切都适用于文本,但使用图像标签它会停止工作?

工作示例...

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.jpg,path/img2.jpg之前没有被视为字符串的一部分。这就是问题所在。

更新 为您的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 回答