17 августа 2009-го
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
17 августа 2009, 20:42
javascript: «Bug» with previousSibling
У нас есть вот такой список HTML тэгови т. д. , а обидно ;) ). Быстрый способ это вылечить, это написать весь HTML в одну строку, то есть убрать перенос, но это блин не выход ;)
Для этого можно написать «свой», «правильный» previousSibling, или, по желанию, модифицировать существующий, что, на моё мнение, будет излишним ;) Как всегда, залезем в прототип и дадимстране угля Обжектам, типа Нод Element (crossbrowser fix, thx Сергей Морозов), новую функцию
<label for="text">Enter text</label> <input name="text" type="text">Если вызвать функцию, от имени инпута, и потом попытаться повлиять на его previousSibling, которым по идее есть label, мы упрёмся в текстовую ноду (.style is undefined — у которой нету понятия стиль
Для этого можно написать «свой», «правильный» previousSibling, или, по желанию, модифицировать существующий, что, на моё мнение, будет излишним ;) Как всегда, залезем в прототип и дадим
Element.prototype.pSib = function() { var node = this; while (node = node.previousSibling) { // нам не нужен текст, йо ;) if (node.nodeType != 3) continue; } return node; } // использовать вот так var sometop = someid.pSib().style.top;
1 комментарий| 16 августа 2009-го | ← | Ctrl | → | 18 августа 2009-го |
