如何在动态生成的元素上应用样式

how to apply style on dynamically generated element

本文关键字:元素 应用 样式 动态      更新时间:2023-09-26
function createList(arrunique, arrayout) {
    for (i = 0; i < arrayout[0].length; i++) {
        var divIdC = i;
        var divIdT = i + 10;
        $('#tb').append('<select name="combo" style="float:left; width:100px;" id="' + divIdC + '" onchange="getComboVal(this,' + divIdC + ')"></select>');
        $('#tb').append('<input type="text" name = "textBox" style= "width:100px;" id="' + divIdT + '" onkeyup="validate(this,"' + divIdT + '") value="0">');
        var select = document.getElementById(divIdC);
        select.options[select.options.length] = new Option("Select " + arrunique[i][0]);
        for (j = 1; j < arrunique[i].length; j++) {
            select.options[select.options.length] = new Option(arrunique[i][j]);
        };
    };
}

在此代码中,我想生成一个组合框和一个文本框,我想应用一些样式表属性或任何类。我该怎么做。它不起作用。

有很多很多方法可以设置javascript创建的元素的样式。这里有一些。单击此处观看现场演示。

var myElem = document.createElement('div');
myElem.style.color = '#FFF';

使用 jQuery:

var $myElem = $('<div></div>');
$myElem.css('color', '#FFF');

或 jQuery css 对象语法(用于传递多个样式(

$myElem.css({display: 'block', background: '#000'});
与其在创建元素后

添加样式,您还可以考虑在创建元素后向元素添加一个类并在 css 文件中设置此类样式。

CSS 文件:

.myElem {
  color: #FFF;
}

myElem.className = 'myElem';

$myElem.addClass('myElem');
$('#tb').append('<input type="text" class="YOURCLASS" name = "textBox" style= "width:100px;" id="'+divIdT+'" onkeyup="validate(this,"'+divIdT+'") value="0">');

请参阅这个简化的 jsFiddle。 确保控制台未生成错误,并且您正在调用 createList() 函数。