gpt4 book ai didi

c# - 动态创建选择元素并从共享点列表中填充选项

转载 作者:行者123 更新时间:2023-11-28 08:54:44 26 4
gpt4 key购买 nike

我编写的代码可以工作,但还可以更好。我将相同的函数写了三次,每个组合框元素各写一次。我一直在思考如何提高效率。我已经考虑过创建一个对象并将每个变量放入一个数组中,但我无法成功使其工作。

    var csCategory = <%=csCategoryArray%>,
csKeyword = <%=csKeywordArray%>,
csEntity = <%=csEntityArray%>;

addOption = function (selectbox, text, value) {
var optn = document.createElement("OPTION");
optn.text = text;
optn.value = value;
selectbox.options.add(optn);
}

$(function () {
// Temp test stuff to populate option list
var selectObj = document.getElementById("combobox1")
if (selectObj) {
for (var i=0; i < csCategory.length;++i){
addOption(selectObj, csCategory[i], csCategory[i]);
}
}
});

$(function () {
// Temp test stuff to populate option list
var selectObj = document.getElementById("combobox2")
if (selectObj) {
for (var i=0; i < csKeyword.length;++i){
addOption(selectObj, csKeyword[i], csKeyword[i]);
}
}
});

$(function () {
// Temp test stuff to populate option list
var selectObj = document.getElementById("combobox3")
if (selectObj) {
for (var i=0; i < csEntity.length;++i){
addOption(selectObj, csEntity[i], csEntity[i]);
}
}
});

最佳答案

显而易见的第一步是重构共享代码。所以:

$(function () {
// Temp test stuff to populate option list
var selectObj = document.getElementById("combobox2")
if (selectObj) {
for (var i=0; i < csKeyword.length;++i){
addOption(selectObj, csKeyword[i], csKeyword[i]);
}
}
});

( ... etc ... )

变成:

function populate(id, collection) {
var selectObj = document.getElementById(id)
if (selectObj) {
for (var i=0; i < collection.length;++i){
addOption(selectObj, collection[i], collection[i]);
}
}
}

$(function () {
populate ("combobox1", csCategory);
populate ("combobox2", csKeyword);
populate ("combobox3", csEntity);
});

在这个阶段,我看不出将 combobox1 及其同级放入数组有任何显着优势,但如果有更多组合框,则可能值得重新访问此代码。将来添加。

关于c# - 动态创建选择元素并从共享点列表中填充选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18645896/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com