ID = "root".this.value

Id = "root".this.value

我粗略地查找了类似的问题,但找不到解决方案。

我的问题是,我需要通过 select 选项菜单 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 之前删除根,这些东西就可以工作,但像这样它什么也做不了。这里有没有朋友可以帮助我并得到我需要的东西?

提前致谢

您需要使用 + 连接 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. getElementsById -> 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>