我正在尝试用模板文字创建一些html元素。我知道我可以有一个for循环,一个接一个地创建选项,但我发现这是混乱的代码。这是我可以开始工作的最好方法。有没有一个更简单的方法,我完全错过了?
/* creating the table */
let propertyTable = document.createElement('table');
propertyTable.classList.add('expand','ignore');
let selected = ["", "", "", "", "", ""];
switch (this.type) {
case "number":
selected[0] = "selected";
break;
case "dropDown":
selected[1] = "selected";
break;
case "autoSet":
selected[2] = "selected";
break;
case "plotly":
selected[3] = "selected";
break;
case "gradeGroup":
selected[4] = "selected";
break;
case "generate":
selected[5] = "selected";
break;
}
/* starting the property table */
propertyTable.innerHTML = `<tr class="ignore">
<th class="ignore">ID</th>
<td class="ignore"><input class="tile ignore" value="${this.id}"></td>
</tr>
<tr class="ignore">
<th class="ignore">Type</th>
<td class="ignore">
<select class="tile ignore">
<option value="number" ${selected[0]} class="ignore">number</option>
<option value="dropDown" ${selected[1]} class="ignore">dropDown</option>
<option value="autoSet" ${selected[2]} class="ignore">autoSet</option>
<option value="plotly" ${selected[3]} class="ignore">plotly</option>
<option value="gradeGroup" c${selected[4]} lass="ignore">gradeGroup</option>
<option value="generate" ${selected[5]} class="ignore">generate</option>
</select>
</td>
</tr>`;
2条答案
按热度按时间6ojccjat1#
使用类型名数组代替大的
switch
语句。cbjzeqam2#
你能尝试一个更简单的函数,用相关的类型调用,比如:(注意这是伪代码,根据需要进行调整)
然后在创建选择选项时,将其命名为:
但实际上,有一个函数来构建每个选项将是理想的。
你可以这样说: