Вторник, 21 Апрель 2009
соседи по офису
Вот такие у нас соседи в офисе
Вот такие у нас соседи в офисе
«Ну ты же сам все понимаешь, вокруг одни динамические трансвеститы»
%name% очень внимательные пидарасы, они height и width указывают
Админ поймавший потеряный пакет:
Я еще с утра понял что работать сегодня будет весело.
Пришлось столкнуться с генерацией select’ов с optgroup, да так, что бы это было переносимо (opera, ie, ff).
Первое что приходит в голову, это следующий код:
function sampleAddItemsAtSelect(selectObject){
var optgroup = document.createElement("optgroup");
optgroup.label = "1 optgroup";
optgroup.appendChild(new Option("item 1"));
optgroup.appendChild(new Option("item 2"));
selectObject.appendChild(optgroup);
optgroup = document.createElement("optgroup");
optgroup.label = "2 optgroup";
optgroup.appendChild(new Option("item 3"));
optgroup.appendChild(new Option("item 4"));
selectObject.appendChild(optgroup);
}
Но у него есть проблема — в IE «мои items» не рендерется (нету текста, хотя выбрать их можно). Пришлось искать обходные пути, и они были найдены.
function sampleAddItemsAtSelect(selectObject){
var optgroup = document.createElement("optgroup");
optgroup.label = "1 optgroup";
selectObject.appendChild(optgroup);
selectObject.options[selectObject.options.length] = new Option("item 1")
selectObject.options[selectObject.options.length] = new Option("item 2")
optgroup = document.createElement("optgroup");
optgroup.label = "2 optgroup";
selectObject.appendChild(optgroup);
selectObject.options[selectObject.options.length] = new Option("item 3")
selectObject.options[selectObject.options.length] = new Option("item 4")
}
Причина такого поведения мне остается загадкой, а так же ответ на вопрос: «Как заполнить в select optgroup не по порядку?»
В процессе работы попалась интересная (сложная) задачка на xslt:
Есть xml:
<root>
<values>
<value g="a" title="t1" />
<value g="b" title="t2" />
<value g="b" title="t3" />
<value g="a" title="t4" />
<value title="t5" />
<value title="t6" />
<value g="b" title="t7" />
</values>
</root>
Требуется из него получить:
<root>
<items>
<group name="a">
<value>t1</value>
<value>t4</value>
</group>
<group name="b">
<value>t2</value>
<value>t3</value>
<value>t7</value>
</group>
<value>t5</value>
<value>t6</value>
</items>
</root>
Ниже решение, которое нашел я. Если хотите — смотрите сразу, но интереснее подумать. У меня это заняло около полу часа, а у вас?