从对象文本获取链接值,onchange--Javascript/HTML选择

从对象文本获取链接值,onchange--Javascript/HTML选择,javascript,html-select,onchange,lookup-tables,object-literal,Javascript,Html Select,Onchange,Lookup Tables,Object Literal,我知道如何使用switch-case例程操作此菜单,但我想将我的switch-case更改为object-literal A部分知道如何获取onchange值并打开一个窗口。B部分知道如何在对象中的name:value对中查找值,但前提是为其指定了一个硬编码名称以匹配某个值。我必须结合A部分和B部分的能力。由于A部分和B部分都是独立工作的,所以将它们结合起来应该很简单,但我已经做了四天了,我不知道怎么做 A部分:此选择菜单将值属性中的硬编码链接替换为对象中用作名称的值。按原样,这会打开选项卡,但

我知道如何使用switch-case例程操作此菜单,但我想将我的switch-case更改为object-literal

A部分知道如何获取onchange值并打开一个窗口。B部分知道如何在对象中的name:value对中查找值,但前提是为其指定了一个硬编码名称以匹配某个值。我必须结合A部分和B部分的能力。由于A部分和B部分都是独立工作的,所以将它们结合起来应该很简单,但我已经做了四天了,我不知道怎么做

A部分:此选择菜单将值属性中的硬编码链接替换为对象中用作名称的值。按原样,这会打开选项卡,但我想从B部分中名为lynk的对象获得链接的正确对应值

<select id="sed">
    <option value="" selected>Select:</option>
    <option value="prev" >PREV</option>
    <option value="next">NEXT</option>
    <option value="home">home</option>
    <option value="gimme">contribute</option>
</select>

<script>
document.getElementById('sed').addEventListener ('change', valuu);

function valuu() {
ddd = document.getElementById("sed").value;
window.open(ddd, '_self');
}
</script>
第二部分:这个脚本来自一个在线示例,该示例演示了如何从对象获取相应的值。如果粘贴到控制台中,它将以字符串形式返回正确的链接。正确答案在脚本的最后一行硬编码为“gimme”。我必须用代码替换“gimme”,该代码从选择选项值中获取onchange值,并在对象中查找相应的链接

<script>
/*Works when pasted into console*/
function foo(bar) {
  var lynk = {
    'default': (''),
    'next': ('nextly.html'),
    'prev': ('previous.html'),
    'gimme': ('http://patreonx.com/bxaxly'),
    'home': ('index.html')
  };
  return lynk[bar];
}
foo('gimme');
</script>

这应该使它充满活力

function valuu() {
   ddd = document.getElementById("sed").value;
   window.open(foo(ddd), '_self');
}
你可以在一个函数中完成这一切,比如

document.getElementById('sed').addEventListener ('change', function(e){
   var lynk = {
    'default': (''),
    'next': ('nextly.html'),
    'prev': ('previous.html'),
    'gimme': ('http://patreon.com/bearly'),
    'home': ('index.html')
   };
   window.open(lynk[e.target.value]);
});

A部分工作,B部分工作。我需要让它们一起工作。请查看更新的答案,第二个代码片段。我做了一个更改,因为您的代码正在打开新窗口,您遗漏了“自我”;在窗口。打开线。测试时,我改为:window.openlynk[e.target.value],'u self';而且效果很好,谢谢。