2013-10-29 29 views
1

我試圖在我的頁面上找到所有<select>元素,獲取索引,然後將每個索引作爲值添加到所有選擇的<option>。在這裏,我有各自選擇:使用jQuery,查找所有選擇並追加索引值作爲選項

<select class="select"></select> 
<select class="select"></select> 
<select class="select"></select> 
<select class="select"></select> 

var i = 0; 
    $(".select").each(function(){ 
    ++i; 
    }); 
    $(".select").each(function(){ 
    for (i > 0){ 
     $(this).append("<option val='" + i + "'>" + i + "</option>"); 
    } 
}); 

最後,我想實現將每個目標選擇看起來像:

<select> 
    <option val="1">1</option> 
    <option val="2">2</option> 
    <option val="3">3</option> 
    <option val="4">4</option> 
    <option val="5">5</option> 
    <option val="6">6</option> 
    <option val="7">7</option> 
    <option val="8">8</option> 
    <option val="9">9</option> 
    <option val="10">10</option> 
</select> 

它看起來像我幾乎沒有...

+0

我應該你'i'嗎? – kelunik

+1

雅知道,'每個'都帶有自己的索引參數 – tymeJV

+0

@BlueSkies我犯了一個錯誤,並在最後一個片段中忽略了class =「select」。這不是一個要求,但我看到你的答案中有我的意圖。每個選擇應該看起來像我擁有的​​最後一個示例。 –

回答

1
var $selects = $("select"); 
var selCount = $selects.length; 

for(var i=1; i<=selCount; i++){ 
    $selects.append("<option value='" + i + "'>" + i + "</option>"); 
} 

http://jsfiddle.net/Wy643/

+0

這是我在自己的代碼中得到的。我想我錯了,假設我可以簡單地使用i> 0並完成它。我不明白爲什麼,但確定。謝謝你的幫助。 –

1

如果因爲總共有選擇每個選擇應該得到儘可能多的選擇T,母雞宥可以只是這樣做:

var sel = $("select") 
sel.map(function(i, s) { 
    return $("<option>", {text: i, value: i})[0]; 
}).appendTo(sel); 

DEMO:http://jsfiddle.net/vmUpN/


這裏有一個簡單的JS版本,如果你有興趣。

var sel = document.getElementsByTagName("select"); 
var opts = document.createDocumentFragment(); 

for (var i = 0; i < sel.length; i++) { 
    opts.appendChild(new Option(i, i)); 
} 
for (var i = 0; i < sel.length; i++) { 
    sel[i].appendChild(opts.cloneNode(true)); 
} 

DEMO:http://jsfiddle.net/vmUpN/1/

相關問題