javascript - 如何让新追加的html代码保持原有的css样式?

标签 javascript jquery html css twitter-bootstrap

我使用 bootstrap fpr 设计了一个网页。我希望能够在 html 模板中插入一段 html 代码。但是,插入后,虽然我指定了select所属的类(selectpicker,这是bootstrap中的一个类)。新添加的select field 没有selectpicker 类的css 样式。如何在不重新加载网页的情况下让select字段保持css样式?

// Add a new experiment
$('button[name=addExperiment]').click(function(){
    var existingExperiments = document.getElementsByClassName('experiment');
    var newIndexStr = (existingExperiments.length+1).toString();
    $('div[name=formBody]').append('<div class="col-lg-6 col-md-6 col-sm-6 mb experiment">'+
                                       '<h4>Question'+newIndexStr+':</h4>'+
                                       '<label> Name*: </label>'+
                                       '<input type="text" name="experimentName" pattern="'+PATTERN_FOR_NAME+'" title="'+PATTERN_FOR_NAME_HINT+'" required>'+
                                       '<br>'+
                                       '<label>Description:</label>'+
                                       '<br>'+
                                       '<textarea class="longInput" cols="30" rows="5" name="experimentDescription" pattern="'+PATTERN_FOR_EXPERIMENT_DESCRIPTION+'" title="'+PATTERN_FOR_EXPERIMENT_DESCRIPTION_HINT+'"></textarea>'+
                                       '<div class="valueType">'+
                                       '<label>Value Type*: </label>'+
                                       '<select class="selectpicker" data-style="btn-inverse" data-width="auto" name="valueType" title="Choose A Value Type" required>'+
                                       '<option value="Text" selected="selected">Text</option>'+
                                       '<option value="Number">Number</option>'+
                                       '</select>'+
                                       '<div class="valueRange" style="display: none;">'+
                                       '<label>Value Range: </label>'+
                                       '<input type="text" name="valueRange" pattern="'+PATTERN_FOR_VALUE_RANGE+'" title="'+PATTERN_FOR_VALUE_RANGE_HINT+'">'+
                                       '</div>'+
                                       '<div class="valueCandidates" style="display: block;">'+
                                       '<label>Value Candidates: </label>'+
                                       '<input type="text" name="valueCandidates" pattern="'+PATTERN_FOR_VALUE_CANDIDATES+'" title="'+PATTERN_FOR_VALUE_CANDIDATES_HINT+'">'+
                                       '</div>'+
                                       '</div>'+
                                       '<label>Order Number: </label>'+
                                       '<input type="number" name="experimentOrder"  value='+newIndexStr+' min="1" step="1" required>'+
                                   '</div>');
});

The select field on the left is the css style of selectpicker class in bootstrap2 while that on the right(which is newly appended is the raw html select)

最佳答案

感谢 adeneo 和 Viters 的帮助。我的问题的原因是在我附加 html 代码后,selectpicker(由 bootstrap-select 呈现)没有重新加载。在我的代码末尾添加这一行后,问题就解决了。 here是相关文档的链接。

$('.selectpicker').selectpicker('render');

关于javascript - 如何让新追加的html代码保持原有的css样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38623653/

相关文章:

jquery - Bootstrap 菜单没有下推正文

javascript - 第一个 'for' 在 'inheritance' Typescript 代码中做什么?

javascript - 强制 safari 重新绘制 DOM

javascript - jQuery ie 粘贴时出现问题(带有中断的内容)

jquery - 使用 jQuery 将 JSON 数组转换为 HTML 项目符号列表

html - 字体大小范围 {1, 2, 3, 4, 5, 6, 7} 和 {xx-small, x-small, small, medium, large, x-large, xx-large 之间是否存在事实上的关系}?

javascript - Firefox、ie7 和 ie6 无法使用此 java 脚本

javascript - 像 '&' 和 '£' 这样的特殊字符会剪切我传递的 Twitter 文本

javascript - Backbone.js - 将事件绑定(bind)到 View 中的文档

javascript - div 中的第 n 个类型不起作用