2014-03-04 18 views
0

我已經創建了JSON。並且我在jquery mobile中工作,這在我的代碼中不起作用。代碼被執行但元素不會被追加。追加方法不會在jquery中工作

var serviceName= [{..},{..},{..}] 

    $('#service_select').empty(); 
    $('#service_select').append('<select name="day" id="day">'); 
    for(var i = 0; i < serviceName.length; i++){ 
     $('#service_select').append('<option value=" '+ serviceName[i].name+'">'+serviceName[i].name+'</option>'); 
    } 
    $('#service_select').append('</select>'); 

HTML代碼

<div id="service_select"></div> 

回答

0

首先,關閉選擇標籤並追加它service_select DIV,然後附加選項,因爲evenif你不指定,jQuery的創建立即如果你不指定

結束標記

//新代碼只是複製粘貼

<script> 
var serviceName= [1,3,5,7,9]; 

$('#service_select').empty(); 
$("#service_select").append('<select name="day" id="day"></select>'); 
for(var i = 0; i < serviceName.length; i++){ 
$("#service_select select").append(new Option(serviceName[i], serviceName[i])); 
} 
</script> 

檢查jsfiddeel http://jsfiddle.net/TfM9S/

+1

PRATIK,您不必繼續幫助他,如果你不覺得這是值得的你的時間。另外,它拼寫爲「jsfiddle」,而不是「jsfiddeel」。 Mohaideen,請不要拖延回答者的問題範圍。 – BoltClock

0

這是因爲第一附加()創建閉合</select>,太。 jQuery不會創建無效的html。

試試這個:

$('#service_select').empty(); 
$('#service_select').append('<select name="day" id="day"></select>'); 
for(var i = 0; i < serviceName.length; i++){ 
    $('#service_select select').append('<option value=" '+ serviceName[i].name+'">'+serviceName[i].name+'</option>'); 
} 
+0

它不工作 – Mohaideen

0

建議使用這種形式:

var $selectElement = $('<select>', { 
    'name': 'day', 
    'id': 'day' 
}); 
for(var i = 0; i < serviceName.length; i++){ 
     var $optionEl = $('<option>', { 
     'value': serviceName[i].name, 
     'text': serviceName[i].name 
     }); 
     $selectElement.append($optionEl); 
} 
0

它工作正常

var serviceName = [{..},{..}] 


$(document).on("pageinit","#anotherPageId", function(){ 
    $('#service_select').empty(); 
    $('#service_select').append('<select name="service" id="service"></select>'); 
    for (var i = 0; i < serviceName.length; i++) { 
     $('#service_select select').append('<option value=" ' + serviceName[i].name + '">' + serviceName[i].name + '</option>'); 
    } 
});