2013-08-30 3 views
1
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]); 
     }; 
    }; 
} 

В этом коде я хочу сгенерировать поле со списком и текстовое поле, и я хочу применить атрибут таблицы стилей или любой класс. Как я могу это сделать. Это не работает.Как применить стиль к динамически сгенерированному элементу

+1

Можете ли вы уточнить, что происходит? «Не работает» не описывает проблему - ваши элементы выглядят неуправляемыми, вы получаете сообщения об ошибках в консоли и т. Д. – Scottie

+0

Кажется, [отлично работает для меня] (http://jsfiddle.net/4CQfg/) , Что говорит консольный выход? –

+0

@Nav Kumar, на какое событие вы вызываете эту функцию. createList ... :) –

ответ

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

-3 без каких-либо объяснений? – JackTurky

+8

Да, ваше право. они не дали никаких объяснений. но потом снова ... и ты тоже. – iConnor

+2

Добавляя к тому, что сказал @Pinocchio - такой код может стать настоящим беспорядочным. –

8

Существует множество способов стилизации созданного javascript-элемента. Вот несколько. Click here for live demo.

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'); 
0

Смотрите эту упрощенную jsFiddle. Убедитесь, что консоль не создает ошибок и вы вызываете функцию createList().

Смежные вопросы