当我创建元素时不要更改 select 表单的选项

Dont changes option of select form when i createElement

Help.plz。我正在创建一个 tr "unitTableTr"。在这个 tr 里面,我创建了一个 td。在创建的 td 之一中,在我创建 "unitTableTr" 之后,我需要从选项中输入文本。我在 td 中输入的文本,但仅适用于第一个选项 - 0.25。如果我尝试使用 "option 2" 并将 "option 2" 文本放入 td,它只会放入 "option 1" 文本。

**!** 再一次:我需要如果我接受 "option 3" - 在 table 中必须是 "option 3" 文本,如果 "option 4" - "option 4" 文字.

我的代码哪里做错了?请帮忙

<form>
<select id="work1" style="float: left;"> 
<option>Выберите расценку:</option>
<option value="0">0,25 км</option>
<option value="1">0,25 -о 2,5 км</option>
<option value="2">2,5 - 4,5 км</option>
<option value="3">4,5 км</option>
<option value="4">schools</option>
<option value="5">base</option>
</select>
<div><span>+</span> 
<input type="text"> meters</div>
</form>

<a onclick="createUnit()"> + </a>
<a onclick="removeUnit()"> x </a>

</div>

<script>     

var table_index = 0; 

var a = document.getElementById("work1");
var b = a.options[a.selectedIndex].text;    

var c = document.createTextNode(b);
c.innerHTML = b;
text3.appendChild(c);

function createUnit() {

var unitTableTr = document.createElement('tr');
var unitTableTrTd_1 = document.createElement('td');
table_index++; 

var td_1_p = document.createTextNode(table_index );
unitTableTrTd_1.appendChild(td_1_p);
unitTableTr.appendChild(unitTableTrTd_1); 

var unitTableTrTd_2 = document.createElement('td');
var text2 = document.createTextNode("Reconstruction ");
var p = document.createElement("p"); 
var text3 = document.createTextNode(c.innerHTML);
p.id ="text3";
unitTableTrTd_2.appendChild(p);
unitTableTr.appendChild(unitTableTrTd_2);
p.appendChild(text2);
p.appendChild(text3);

var unitTableTrTd_3 = document.createElement('td');
unitTableTr.appendChild(unitTableTrTd_3);
var unitTableTrTd_4 = document.createElement('td');
unitTableTr.appendChild(unitTableTrTd_4);
var unitTableTrTd_5 = document.createElement('td');
unitTableTr.appendChild(unitTableTrTd_5);
begin_table.appendChild(unitTableTr);

}


</script>

我认为您的问题是由执行顺序引起的。

您的代码无法正常工作,因为以下代码仅在页面加载时执行一次:

var b = a.options[a.selectedIndex].text;    

var c = document.createTextNode(b);
c.innerHTML = b;
text3.appendChild(c);

在您的代码中,您在 createUnit() 函数之前显示了这种情况。所以这只会 运行 一次 - 在页面加载时。当页面加载时,所选索引始终是选项列表中的第一项。

从你的英语中,很难准确地说出你希望你的程序如何工作,但是,你需要在每次创建该元素时获取选定的索引。通过将上面的代码移动到 createUnit() 函数中,它可以解决您的问题,但是同样...如果不深入研究就很难说出您的程序在做什么。