2009-11-03 79 views
0

我有一個href列表,我想從中創建一個下拉列表。生成下拉列表

如何在不使用jQuery的情況下完成此操作?

我是新來的JavaScript ...

回答

5
var select = document.createElement("select"); 
for (var i=0; i<hrefs.length; i++) { 
    var link = hrefs[i]; 
    var option = document.createElement("option"); 
    option.value = hrefs[i]; 
    option.innerHTML = i + ": " + hrefs[i]; // this is the label 
    select.appendChild(option); 
} 
document.body.appendChild(select); 

我不知道如果標籤是正確的;這取決於你的hrefs列表的含義以及你想要對標籤做什麼。我假設你有一組鏈接,如[「http://google.com」,...]。

3

如果你有JavaScript 1.6中,你可以做這樣的事情:

var hrefs = ['http://stackoverflow.com', 'http://example.com'], 
    select = document.createElement("select"), 
    str = hrefs.map(function(l){ 
    return '<option>'+l+'</option>' 
    }); 
select.innerHTML = str.join(''); 
document.body.appendChild(select); 

你可以模仿.MAP與

if (!Array.prototype.map) 
{ 
    Array.prototype.map = function(fun /*, thisp*/) 
    { 
    var len = this.length >>> 0; 
    if (typeof fun != "function") 
     throw new TypeError(); 

    var res = new Array(len); 
    var thisp = arguments[1]; 
    for (var i = 0; i < len; i++) 
    { 
     if (i in this) 
     res[i] = fun.call(thisp, this[i], i, this); 
    } 

    return res; 
    }; 
} 

(MDC通過 - https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/map

+0

順便說一句,你可以編輯'返回'''以適應您的需求。其總體思路... – NilColor

相關問題