append方法在jquery中不起作用

时间:2014-03-04 06:43:53

标签: jquery-mobile

我已经创建了JSON。我在jquery mobile工作,这在我的代码中不起作用。代码已执行但元素不会附加。

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>

4 个答案:

答案 0 :(得分:0)

这是因为第一个append()也会创建结束</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>');
}

答案 1 :(得分:0)

首先,关闭select标签并将其附加到service_select DIV,然后将选项附加到它,因为即使你没有指定,如果你没有指定,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/

答案 2 :(得分: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);
}

答案 3 :(得分: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>');
    }
});