将项目附加到组合框中

时间:2012-02-28 07:17:38

标签: javascript html combobox

我需要在组合框中添加特定次数的项目。这是我的代码。

         for(i=0;i<3;i++)
    {
         othercompaniesli.innerHTML=  '<select onchange="document.location.href = this.options[this.selectedIndex].value;"><option VALUE="http://www.google.com">'+fStr1[0]+'</option>  </select>';
     }

这里我想添加fStr1字符串3次。但它只添加一次。这就是for循环正常工作但只有项目值没有附加。只有最后一个值被添加到组合框中。任何人都可以帮我如何将项目添加到组合框中。

6 个答案:

答案 0 :(得分:1)

var tmpStr = '<select onchange="document.location.href = this.options[this.selectedIndex].value;">';

for(i=0;i<3;i++)
{
    tmpStr+=  '<option VALUE="http://www.google.com">'+fStr1[0]+'</option>  ';
}

tmpStr = '</select>';

othercompaniesli.innerHTML = tmpStr;

答案 1 :(得分:0)

尝试othercompaniesli.innerHTML +=

答案 2 :(得分:0)

由于您使用的等于=,因此它会重新分配给相同的元素

使用append()

$('#othercompaniesli').append('<select onchange="document.location.href = this.options[this.selectedIndex].value;"><option VALUE="http://www.google.com">'+fStr1[0]+'</option>  </select>');

请注意,您的selectoption元素正在重复,您需要相应地进行更改。

答案 3 :(得分:0)

var select= $('mySelect');
var opt = new Option("OptionTitle", "123");

select.selectedIndex = InsertNewOption(opt, select[0]);

function InsertNewOption(opt, element)
{
    var len = element.options.length;
    element.options[optsLen] = opt;

    return len;
}

答案 4 :(得分:0)

将选择标记置于循环之外


var selectTag = '<select onchange="document.location.href = this.options[this.selectedIndex].value;">';
for(i=0;i<3;i++) {
 selectTag +=  '<option VALUE="http://www.google.com">'+fStr1[0]+'</option>';  
}
selectTag +="</select>"
othercompaniesli.innerHTML = selectTag;

答案 5 :(得分:0)

你正在做的是你在结束你的选择标签的循环内部,所以每个元素都有自己的选择开始和结束标签。而你只是用更新的元素更新你的innerHTML,这就是它获取最后一个元素的原因。

 var openingTag= '<select onchange="document.location.href = this.options[this.selectedIndex].value;">';

for(i=0;i<3;i++)
{
    openingTag+=  '<option VALUE="http://www.google.com">'+fStr1[0]+'</option>  ';
}

openingTag= '</select>';

othercompaniesli.innerHTML = openingTag;