Id =" root" .this.value

时间:2015-11-18 11:24:27

标签: javascript html onchange getelementbyid

我粗略地寻找类似的问题,但无法找到解决方案。

我的问题是,我需要通过选择选项菜单更改imghref。如果我只需要改变其中一个,这不是问题......但a href和src有不同的根,我不知道如何给他们值相同但附加不同的根... 也许更容易显示代码来解决我的问题......

<select onchange="document.getElementsById('stammimg').src = 'img/stamm/thumb/'.this.value;document.getElementsById('stammref').href = 'img/stamm/'.this.value;">

<option value="img1.png">Stammbaum 1</option>
<option value="img2.png">Stammbaum 2</option>
</select>

<a id="stammref" href=""><img id="stammimg" src="" /> </a> `

嗯......这就是我必须要去工作的...... 只要我移除一个getElement并在this.value之前删除根,这些东西就可以了,但是像这样,它什么也做不了。这里的任何伙伴都可以帮助我并获得我需要的东西吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

您需要使用+来连接JavaScript中的字符串,而不是来自PHP的.

<select onchange="document.getElementsById('stammimg').src = 'img/stamm/thumb/' + this.value;document.getElementsById('stammref').href = 'img/stamm/' + this.value;">

最好将此代码拆分为单独的函数:

将此添加到您的页面:

<script>
    function selectChanged() {
        document.getElementsById('stammimg').src = 'img/stamm/thumb/' + this.value;
        document.getElementsById('stammref').href = 'img/stamm/' + this.value;
    }
</script>

并将select标记更新为:

<select onchange="selectChanged">

答案 1 :(得分:0)

  1. getElementsById - &gt; getElementById
  2. 您需要使用+而不是.
  3. 此外,请勿使用内联事件处理程序。创建单独的函数

    更容易
    <script>
    var OnChange = function(obj) {  
        document.getElementById('stammimg').src ='img/stamm/thumb/'+obj.value;
        document.getElementById('stammref').href = 'img/stamm/'+obj.value;
    };
    </script>
    
    <select onchange="OnChange(this)">
        <option value="img1.png">Stammbaum 1</option>
        <option value="img2.png">Stammbaum 2</option>
    </select>
    
    <a id="stammref" href=""><img id="stammimg" src="" /> </a>