Javascript Can';不要多次调用输出id

Javascript Can';不要多次调用输出id,javascript,html,Javascript,Html,我正在尝试构建一个简单的“计算器”,它向我输出一个与XML兼容的表,我可以复制并粘贴到其他地方 我对JavaScript一无所知,到目前为止,我复制并粘贴了一些东西,并根据自己的需要进行修改;我知道非常非常基本的HTML,但我似乎找不到问题所在 在这种形式中,我有两个输入,它们用于相当多的变量,但是我需要多次使用结果。但是,当我第二次尝试获得相同的输出时,却没有结果。如果我删除第一个结果,它将在第二个位置工作。这是有意的吗?我怎样才能第二次得到同样的结果 这是我的代码,它仍然非常初级,因为我正处

我正在尝试构建一个简单的“计算器”,它向我输出一个与XML兼容的表,我可以复制并粘贴到其他地方

我对JavaScript一无所知,到目前为止,我复制并粘贴了一些东西,并根据自己的需要进行修改;我知道非常非常基本的HTML,但我似乎找不到问题所在

在这种形式中,我有两个输入,它们用于相当多的变量,但是我需要多次使用结果。但是,当我第二次尝试获得相同的输出时,却没有结果。如果我删除第一个结果,它将在第二个位置工作。这是有意的吗?我怎样才能第二次得到同样的结果

这是我的代码,它仍然非常初级,因为我正处于构建基础的阶段

<!DOCTYPE html>
<html>
<head>
<title>Title</title>

<style>
#editor { white-space:pre; }  
</style>

</head>
<body>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
        function rechne() {
            var nenndurchmesser = document.getElementById('nenndurchmesser'),
                steigung = document.getElementById('steigung');

            var majordiaEXT = nenndurchmesser.valueAsNumber - 0.092;
            var pitchdiaEXT = nenndurchmesser.valueAsNumber - 0.568;
            var minordiaEXT = nenndurchmesser.valueAsNumber - 1.0155;

            var majordiaINT = nenndurchmesser.valueAsNumber + 0.214;
            var pitchdiaINT = nenndurchmesser.valueAsNumber - 0.407;
            var minordiaINT = nenndurchmesser.valueAsNumber - 0.717;
            var tapdrill = nenndurchmesser.valueAsNumber - steigung.valueAsNumber;

            document.getElementById('nenndurchmesser_res')
                .value = nenndurchmesser.valueAsNumber;
            document.getElementById('steigung_res')
                .value = steigung.valueAsNumber; 

            document.getElementById('majordiaEXT_res')
                .value = majordiaEXT;
            document.getElementById('pitchdiaEXT_res')
                .value = pitchdiaEXT; 
            document.getElementById('minordiaEXT_res')
                .value = minordiaEXT;                

            document.getElementById('majordiaINT_res')
                .value = majordiaINT;
            document.getElementById('pitchdiaINT_res')
                .value = pitchdiaINT; 
            document.getElementById('minordiaINT_res')
                .value = minordiaINT;                
            document.getElementById('tapdrill_res')
                .value = tapdrill;
            }
        document.getElementById("Gewindeangaben")
            .addEventListener("input", rechne);
    });
    </script>
<form id="Gewindeangaben">
    <legend>metrisches Gewinde</legend>
  
    <label for="nenndurchmesser">M</label>
    <input type="number" min="25" max ="122" placeholder="Nenndurchmesser" id="nenndurchmesser" value="0" step="1">

    <label for="steigung">x</label>
    <input type="number" min="0.75" max ="1.00" placeholder="Steigung" id="steigung" value="0.75" step="0.25">

  <br></form><br>
Gewinde M<output id="nenndurchmesser_res"></output>x<output id="steigung_res"></output><br>
<br>

        <!-- this List works -->
externe Gewinde<br>
MajorDia: <output id="majordiaEXT_res"></output><br>
PitchDia: <output id="pitchdiaEXT_res"></output><br>
MinorDia: <output id="minordiaEXT_res"></output><br>
<br>
interne Gewinde<br>
MajorDia: <output id="majordiaINT_res"></output><br>
PitchDia: <output id="pitchdiaINT_res"></output><br>
MinorDia: <output id="minordiaINT_res"></output><br>
Tapdrill: <output id="tapdrill_res"></output><br>


        <!-- the same output variables don't work a 2nd time -->
<p id="editor">
    <code>
&lt;ThreadSize&gt; 
    &lt;Size&gt;<output id="nenndurchmesser_res">0</output>.0&lt;/Size&gt; 
    &lt;Designation&gt; 
    &lt;ThreadDesignation&gt;M<output id="nenndurchmesser_res">0</output>x<output id="steigung_res">0</output>&lt;/ThreadDesignation&gt;
    &lt;CTD&gt;M<output id="nenndurchmesser_res">0</output>x<output id="steigung_res">0</output>&lt;/CTD&gt;
        &lt;Pitch&gt;<output id="steigung_res">0</output>&lt;/Pitch&gt;
        &lt;Thread&gt;
            &lt;Gender&gt;external&lt;/Gender&gt;
            &lt;Class&gt;6g&lt;/Class&gt;
            &lt;MajorDia&gt;<output id="majordiaEXT_res">0</output>&lt;/MajorDia&gt;
            &lt;PitchDia&gt;<output id="pitchdiaEXT_res">0</output>&lt;/PitchDia&gt;
            &lt;MinorDia&gt;<output id="minordiaEXT_res">0</output>&lt;/MinorDia&gt;
      &lt;/Thread&gt;
      &lt;Thread&gt;
            &lt;Gender&gt;internal&lt;/Gender&gt;
            &lt;Class&gt;6H&lt;/Class&gt;
            &lt;MajorDia&gt;<output id="majordiaINT_res">0</output>&lt;/MajorDia&gt;
            &lt;PitchDia&gt;<output id="pitchdiaINT_res">0</output>&lt;/PitchDia&gt;
            &lt;MinorDia&gt;<output id="minordiaINT_res">0</output>&lt;/MinorDia&gt;
            &lt;TapDrill&gt;<output id="tapdrill_res">0</output>&lt;/TapDrill&gt;
      &lt;/Thread&gt;
    &lt;/Designation&gt;
&lt;/ThreadSize&gt;
</code>
</p>
</body>
</html>

标题
#编辑器{空白:pre;}
document.addEventListener('DOMContentLoaded',函数(){
函数rechne(){
var nendurchmesser=document.getElementById('nendurchmesser'),
steigung=document.getElementById('steigung');
var majordiaEXT=NENDURCHMESSER.VALUEASNAMER-0.092;
var pitchdiaEXT=NendurchMesser.valueAsNumber-0.568;
var minordiaEXT=NENDURCHMESSER.VALUEASNAMER-1.0155;
var MajorDaint=NendurchMesser.valueAsNumber+0.214;
var pitchdiaINT=NendurchMesser.valueAsNumber-0.407;
var minordiaINT=NENDURCHMESSER.VALUEASNAMER-0.717;
var tapdrill=nendurchMesser.valueAsNumber-steigung.valueAsNumber;
document.getElementById('nendurchMesser_res')
.value=nendurchmesser.valueAsNumber;
document.getElementById('steigung_res')
.value=steigung.valueAsNumber;
document.getElementById('majordiaEXT_res')
.value=majordiaEXT;
document.getElementById('pitchdiaEXT_res')
.value=pitchdiaEXT;
document.getElementById('minordiaEXT_res')
.value=minordiaEXT;
document.getElementById('majorDaint_res')
.价值=主要价值;
document.getElementById('pitchdiaINT_res')
.值=pitchdiaINT;
document.getElementById('minordiaINT_res')
.值=最小值;
document.getElementById('tapdrill\u res')
.value=tapdrill;
}
document.getElementById(“Gewindeangaben”)
.addEventListener(“输入”,rechne);
});
格温德酒店
M
x


Gewinde Mx

格温德外景酒店 马约迪亚:
沥青直径:
米诺迪亚:

interne Gewinde
马约迪亚:
沥青直径:
米诺迪亚:
Tapdrill:


线径
尺寸0.0/尺寸
任命
螺纹名称0x0/螺纹名称
CTDM0x0/CTD
俯仰0/俯仰
线
性别外部/性别
类别6G/类别
MajorDia0/MajorDia
沥青直径0/沥青直径
米诺迪亚0/米诺迪亚
/线
线
性别内部/性别
类别6H/类别
MajorDia0/MajorDia
沥青直径0/沥青直径
米诺迪亚0/米诺迪亚
TapDrill0/TapDrill
/线
/名称
/线径

这样:

const
Gform=document.forms['Gewindeangaben']
,cEdit=document.getElementById('c_edit')
,infos=
{majordiaEXT:{nam1:'nendurchmesser',val:0,add:-0.092}
,pitchdiaEXT:{nam1:'NendurchMesser',val:0,add:-0.568}
,minordiaEXT:{nam1:'nendurchmesser',val:0,添加:-1.0155}
,majordaint:{nam1:'nendurchmesser',val:0,add:+0.214}
,pitchdiaINT:{nam1:'NendurchMesser',val:0,add:-0.407}
,minordiaINT:{nam1:'nendurchmesser',val:0,add:-0.717}
,tapdrill:{nam1:'NendurchMesser',nam2:'steigung',nam2_op:'-',val:0}
}
,cEdit_Show=()=>
{
cEdit.textContent=
`   
0
M0x0
M0x0
0
外部的
6g
${infos.majordiaEXT.val}
${infos.pitchdiaEXT.val}
${infos.minordiaEXT.val}
内部的
6H
${infos.majordaint.val}
${infos.pitchdiaINT.val}
${infos.minordaint.val}
${infos.tapdrill.val}
`
}
()
Gform.onsubmit=e=>e.preventDefault()
Gform.oninput=()=>
{
Object.keys(infos.forEach(key=>
{
让ik=infos[key]
如果(!ik.nam2)ik.val=Gform[ik.nam1].valueAsNumber+ik.add
else ik.val=Gform[ik.nam1].valueAsNumber-Gform[ik.nam2].valueAsNumber
})
()
}
表单{
字体系列:“Segoe UI”,塔荷马,日内瓦,Verdana,无衬线;
字体大小:14px;
}
表单字段集{
边缘顶部:1米;
宽度:32em;
}
表格图例{
字体风格:斜体;
填充:0.1em;
}
表单标签{
显示:块;
浮动:左;
边缘:.3em.4em;
}
表单标签span{
字体大小:.9em;
右侧填充:.2em;
}
表单标签输入{
显示:块;
清除:左;
}
前{
宽度:39em;
填充:.3em;
边框:1px纯灰;
颜色:深蓝色;
}

格温德酒店
内恩杜尔梅瑟
施泰贡