Вопрос не будет полным, если мы не упомянем об альтернативных методах для обхода объектов.
В настоящее время многие известные библиотеки JavaScript предоставляют свои собственные методы для итерации над коллекциями, то есть над массивов , объектов и в виде массива . Эти методы удобны в использовании и полностью совместимы с любым браузером.
jQuery.each()
. Его можно использовать для беспрепятственной итерации по обоим объектам и массивам: $.each(obj, function(key, value) {
console.log(key, value);
});
_.each()
, который выполняет итерацию по списку элементов, каждый из которых, в свою очередь, передается в заданную функцию (обратите внимание на порядок аргументов в функции iteratee !): _.each(obj, function(value, key) {
console.log(key, value);
});
_.forEach()
(или его псевдоним _.each()
) полезен для циклического перемещения по обоим объектам и массивам, однако (!) Объекты с свойством length
рассматриваются как массивы, и чтобы избежать такого поведения, предлагается использовать методы _.forIn()
и _.forOwn()
(они также имеют первый аргумент value
): _.forIn(obj, function(value, key) {
console.log(key, value);
});
_.forIn()
выполняет итерацию по и унаследовал перечислимые свойства объекта, тогда как _.forOwn()
выполняет итерацию только над собственными свойствами объекта (в основном проверяя функцию hasOwnProperty
). Для простых объектов и литералов объектов любой из этих методов будет работать нормально. Как правило, все описанные методы имеют одинаковое поведение с любыми поставленными объектами. Кроме того, использование нативного цикла for..in
обычно будет быстрее , чем любая абстракция, например jQuery.each()
, эти методы значительно проще в использовании, требуют меньше кодирования и обеспечивают лучшую обработку ошибок.
Если Вы хотите изменить цвет отделения с клиентским кодом (JavaScript), работающий в браузере, Вы делаете что-то как следующее:
<script>
var fooElement = document.getElementById("foo");
fooElement.style.color = "red"; //to change the font color
</script>
Необходимо выбрать цвета в CSS и затем изменить класс CSS программно. Например:
(CSS)
div.Error {
color:red;
}
(ASP.NET/VB)
<div class='<%=Iif(HasError, "Error", "")%>'> .... </div>
Попробуйте это: в .aspx файле помещает эти строки
<div id="myDiv" runat="server">
Some text
</div>
затем можно использовать, например,
myDiv.Style["color"] = "red";
Обычно можно сделать это непосредственно
document.getElementById ("myDiv") .style.color = "красный";
Здесь существует ссылка.
Тот фрагмент кода не говорит многое - если код является серверной стороной, почему Вы не изменяетесь, например, класс элемента HTML там?
Похоже на запись ASP или возможно JSP. Я не слишком знаком ни с одним языком, но принципы являются тем же, в каком языке Вы работаете.
Если Вы работаете с ограниченным количеством цветов, то обычная опция состоит в том, чтобы создать много классов и наборов правила записи для них в Вашей таблице стилей:
.important { background: red; }
.todo { background: blue; }
И так далее.
Затем имейте свой серверный сценарий, генерируют HTML для создания соответствия CSS:
<div class="important">
Необходимо, конечно, удостовериться, что информация доступна через средства кроме цвета также.
Если цвета определяются во время выполнения, то можно генерировать атрибуты стиля:
<div style="background-color: red;">
Если бы вы хотели изменить класс, а не стиль напрямую: т.е. создать другой класс с нужным вам стилем...
myDiv.Attributes["class"] = "otherClassName"