<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8013757196449832640</atom:id><lastBuildDate>Thu, 19 Feb 2026 10:00:03 +0000</lastBuildDate><category>javascript</category><category>jquery</category><category>DOM</category><category>ajax</category><category>behaviour</category><category>bubling</category><category>capture</category><category>content</category><category>events</category><category>events list</category><category>evolution</category><category>getElementById</category><category>getElementsByTagName</category><category>google jquery</category><category>jquery events</category><category>jquery selectors</category><category>listeners</category><category>presentation</category><category>selectors</category><category>target</category><category>variables</category><category>walking the DOM</category><category>web technologies</category><category>изменение синтаксиса jquery</category><category>навигация dom</category><category>распространение событий</category><category>селекторы</category><category>список событий</category><category>три кита www</category><title>Javascript и AJAX. Изучение языков и web-технологий</title><description>Рабочий конспект изучения языков и web-технологий: Javascript и AJAX</description><link>http://prostojavascript.blogspot.com/</link><managingEditor>noreply@blogger.com (Sergey)</managingEditor><generator>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-4275124850912217154</guid><pubDate>Tue, 12 Nov 2019 07:56:00 +0000</pubDate><atom:updated>2010-02-09T06:15:06.857-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ajax</category><category domain="http://www.blogger.com/atom/ns#">evolution</category><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">web technologies</category><title>Cомнения отброшены. Эволюция познания.</title><description>Сомнения отброшены. Несмотря на все нападки &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMI_kAbpOikjOKZYS4g9wcWE9K0sb7MEh0eIXLP8VVUBJGhDPwdm_TJduxe7-Cz1uFsIiwCRI9gFhg4-Be_4whcS35CeU0gtHIzk2NrGxjP6kfWLfvAFTxrLaPOPgZUwCZSs-0RGDF-a97/s1600-h/evolution.gif&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;Эволюция человечества&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5335221137983413362&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFQMQQpWLKvcNg9QwvuRP9cg-UAFd5Vzq3gdld1uBF4n0xltzBGkvsWh3w8OMsrMMT1ExrCGyeVClInoo8ALp-YG6YyYXxW_1ylynJfreDGldcR3Jss6SAfmqVYR0sDa-aHdjXcuPaCK-w/&quot; style=&quot;cursor: pointer; float: right; height: 240px; margin: 0pt 0pt 10px 10px; width: 144px;&quot; title=&quot;Эволюция человечества&quot; /&gt;&lt;/a&gt;приверженцев других языков, &lt;span style=&quot;font-weight: bold;&quot;&gt;javascript&lt;/span&gt; развивается и активно используется повсеместно.&lt;br /&gt;
&lt;br /&gt;
Очередной этап в развитии - &lt;span style=&quot;font-weight: bold;&quot;&gt;ECMAScript 4th Edition&lt;/span&gt; (ES4).&lt;br /&gt;
&lt;br /&gt;
Надо лезть вглубь и нарабатывать опыт. До сих пор я ограничивался чтением отдельных книг и разборкой примеров. &lt;span style=&quot;font-weight: bold;&quot;&gt;Развитие идёт по спирали&lt;/span&gt;. Возвращаюсь к началу уже с другим взглядом на предмет.&lt;br /&gt;
&lt;br /&gt;
Кстати, о спирали... Нет, не о контрацептивной. Если представить себе земной шар на кончике спирали, то в процессе развития земля перемещается по спирали вверх, затем под тяжестью земного шарика спираль начинает сжиматься, возникает обратная сила, выталкивающая земной шар наверх и т.д.&lt;br /&gt;
&lt;br /&gt;
Те есть, начинаются &lt;span style=&quot;font-weight: bold;&quot;&gt;периодические колебания&lt;/span&gt;. Образно говоря, &lt;span style=&quot;color: #6633ff; font-style: italic;&quot;&gt;от технократического века - обратно в каменный&lt;/span&gt; (но уже на новом уровне развития). Фантастика!&lt;br /&gt;
&lt;br /&gt;
Ближе к телу.&lt;br /&gt;
Литература:&lt;br /&gt;
1. &lt;span style=&quot;font-weight: bold;&quot;&gt;Simply JavaScript&lt;/span&gt; by Kevin Yank &amp;amp; Cameron Adams. Есть файлы с примерами.&lt;br /&gt;
2. &lt;span style=&quot;font-weight: bold;&quot;&gt;Pure Javascript&lt;/span&gt; by R.Allen Wyke,Jason D. Gilliam, Charlton Ting, Sean Michaels&lt;br /&gt;
3. &lt;span style=&quot;font-weight: bold;&quot;&gt;Visual QuickStart Guide JavaScript and Ajax for the Web&lt;/span&gt; By Tom Negrino, Dori Smith&lt;br /&gt;
4. &lt;span style=&quot;font-weight: bold;&quot;&gt;Learning JQuery&lt;/span&gt; By Jonathan Chaffer and Karl Swedberg&lt;br /&gt;
&lt;br /&gt;
Поехали!</description><link>http://prostojavascript.blogspot.com/2009/11/c.html</link><author>noreply@blogger.com (Sergey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFQMQQpWLKvcNg9QwvuRP9cg-UAFd5Vzq3gdld1uBF4n0xltzBGkvsWh3w8OMsrMMT1ExrCGyeVClInoo8ALp-YG6YyYXxW_1ylynJfreDGldcR3Jss6SAfmqVYR0sDa-aHdjXcuPaCK-w/s72-c" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-931490773087918529</guid><pubDate>Wed, 07 Sep 2011 13:37:00 +0000</pubDate><atom:updated>2011-09-07T06:37:45.271-07:00</atom:updated><title></title><description></description><link>http://prostojavascript.blogspot.com/2011/09/blog-post.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-560500234590470527</guid><pubDate>Thu, 25 Mar 2010 06:47:00 +0000</pubDate><atom:updated>2011-01-24T05:01:05.707-08:00</atom:updated><title>5.6 :animated Selector</title><description>&lt;style&gt;
div.hvost {float:none;}
.buttondemo20100324 { border: 2px outset #ff99ff;
  height: 30px;  background-color: #ff99ff;
  color: black;  font-size: medium;
}
 div.normal20100324 { background:yellow; border:1px solid #AAA; width:80px; height:80px; margin:0 5px; float:left; }
 div.colored20100324 { background:magenta; }

&lt;/style&gt;&lt;br /&gt;
Актуален для элементов &lt;b&gt;DOM&lt;/b&gt;, находящихся в состоянии &lt;b&gt;анимации&lt;/b&gt;, активизированном функциями &lt;b&gt;animate()&lt;/b&gt;, &lt;b&gt;slideToggle()&lt;/b&gt;...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;$(&quot;#run&quot;).click(function(){&lt;br /&gt;
$(&quot;div:animated&quot;).toggleClass(&quot;colored&quot;);&lt;br /&gt;
});&lt;br /&gt;
function animateObj() {&lt;br /&gt;
$(&quot;#mover&quot;).slideToggle(&#39;slow&#39;, animateObj);&lt;br /&gt;
}&lt;br /&gt;
animateObj();&lt;/div&gt;&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
&lt;button class=&quot;buttondemo20100324&quot; id=&quot;run&quot; title=&quot;Кликни для теста смены цвета animated объекта&quot; &gt;Тест&lt;/button&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;normal20100324&quot;&gt;&lt;/div&gt;&lt;div class=&quot;normal20100324&quot; id=&quot;mover20100324&quot;&gt;&lt;/div&gt;&lt;div class=&quot;normal20100324&quot;&gt;&lt;/div&gt;&lt;div class=&quot;hvost&quot;&gt;Такие живые кубики...&lt;/div&gt;&lt;script&gt;
    $(&quot;#run&quot;).click(function(){
      $(&quot;div.normal20100324:animated&quot;).toggleClass(&quot;colored20100324&quot;);
    });
    function animateObj() {
      $(&quot;#mover20100324&quot;).slideToggle(3000, animateObj);
    }
    animateObj();
&lt;/script&gt;</description><link>http://prostojavascript.blogspot.com/2010/03/animated-selector.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-2765604331348404946</guid><pubDate>Wed, 24 Mar 2010 10:12:00 +0000</pubDate><atom:updated>2011-01-25T00:49:06.381-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jquery selectors</category><title>5.5 Примеры. Selectors. All selector (*)</title><description>&lt;style&gt;
.buttondemo {
  border: 5px outset #ff99ff;
  height: 40px;
  background-color: #ff99ff;
  color: black;
  font-size: medium;
}
#result20100323 {
  color: red;
  padding: 5px;
}
&lt;/style&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;curr_page20100323&quot;&gt;Найти &lt;b&gt;все элементы&lt;/b&gt;, включая BODY, HEAD,... во всём документе.&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;&lt;br /&gt;
var elementCount = &lt;span style=&quot;font-size: large;&quot;&gt;$(&quot;*&quot;)&lt;/span&gt;.css(&quot;border&quot;,&quot;3px solid #ceafff&quot;).length;&lt;br /&gt;
$(&quot;body&quot;).prepend(&quot;Найдено всего &quot; + elementCount + &quot; элементов&quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;Найти &lt;b&gt;все дочерние элементы&lt;/b&gt; внутри документа начиная от конкретного объекта c id = curr_ID:&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;&lt;br /&gt;
var elementCount = &lt;span style=&quot;font-size: large;&quot;&gt;$(&quot;#curr_ID&quot;).find(&quot;*&quot;)&lt;/span&gt;.length;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;Эквивалентно :&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;&lt;br /&gt;
var elementCount = &lt;span style=&quot;font-size: large;&quot;&gt;$(&quot;#curr_ID *&quot;)&lt;/span&gt;.length;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;Замечание. Очень &lt;span style=&quot;color: red;&quot;&gt;медленный&lt;/span&gt; селектор. &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;input class=&quot;buttondemo&quot; id=&quot;click20100323&quot; type=&quot;button&quot; value=&quot;Посчитать число элементов в этом посте&quot; title=&quot;Кликни для подсчёта числа элементов DOMа&quot;/&gt;&lt;span id=&quot;result20100323&quot;&gt;&lt;/span&gt;&lt;/div&gt;Поскольку это страничка &lt;b&gt;Google Blogger&lt;/b&gt;, поэтому в расчёт идут ещё и скрытые элементы. Их будет &lt;i&gt;несколько больше&lt;/i&gt;, чем видно визуально.&lt;br /&gt;
&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(&#39;#click20100323&#39;).click(function() {
  var elementCount = $(&quot;#curr_page20100323 *&quot;).css(&quot;border&quot;,&quot;3px dotted red&quot;).length;
  $(&quot;#result20100323&quot;).text(&quot;Найдено всего &quot; + elementCount + &quot; элементов&quot;);
});
&lt;/script&gt;</description><link>http://prostojavascript.blogspot.com/2010/03/selectors-all-selector.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-310993772372715255</guid><pubDate>Tue, 23 Mar 2010 13:42:00 +0000</pubDate><atom:updated>2011-01-24T04:30:17.658-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">selectors</category><category domain="http://www.blogger.com/atom/ns#">селекторы</category><title>5.4 Selectors</title><description>Исходя из концепции &lt;a href=&quot;http://prostojavascript.blogspot.com/2009/11/1-web.html&quot;&gt;Трёх китов&lt;/a&gt;, уровень &lt;i&gt;behavior&lt;/i&gt; строится следующим образом:&lt;br /&gt;
&lt;br /&gt;
Создаются &lt;b&gt;CSS-стили &lt;/b&gt;&lt;span style=&quot;color: red;&quot;&gt;на все случаи жизни&lt;/span&gt; &lt;b&gt;по классам&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
А затем данным на странице &lt;b&gt;динамически присваивается нужный класс&lt;/b&gt; в &lt;span style=&quot;color: red;&quot;&gt;зависимости от происходящих событий&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
Доступ к элементам &lt;b&gt;DOM&lt;/b&gt;а как раз и позволяют получить замечательные &lt;b&gt;селекторы&lt;/b&gt; - функции JQuery. &lt;br /&gt;
&lt;br /&gt;
Кое-что из документации:&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;b&gt;$(‘a[title]’)&lt;/b&gt; &lt;/span&gt;- выбрать все линки, у которых есть &lt;b&gt;атрибут&lt;/b&gt; &lt;span style=&quot;color: blue;&quot;&gt;title&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;$(‘div:has(ol)’)&lt;/span&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt; &lt;/span&gt;&lt;/b&gt;- выбрать&lt;span style=&quot;color: red;&quot;&gt; все&lt;/span&gt; &lt;b&gt;DIV&lt;/b&gt; элементы, у которых есть элемент &lt;b&gt;OL&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;$(‘tr:even’)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt; &lt;/span&gt;-&lt;span style=&quot;color: red;&quot;&gt;чётные&lt;/span&gt; строки таблицы.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;b&gt;$(‘tr:odd’)&lt;/b&gt; &lt;/span&gt;- &lt;span style=&quot;color: red;&quot;&gt;нечётные&lt;/span&gt; строки таблицы.&lt;br /&gt;
&lt;/div&gt;&lt;span style=&quot;color: blue;&quot;&gt;Другой способ&lt;/span&gt;:&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;b&gt;$(‘tr’).filter(‘:odd’).addClass(‘odd’)&lt;/b&gt;;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;$(‘td:contains(“Some text”)’)&lt;/span&gt;&lt;/b&gt; – поле таблицы, содержащее текст “Some text”&lt;/div&gt;&lt;br /&gt;
При &lt;span style=&quot;color: blue;&quot;&gt;добавлении класса&lt;/span&gt; элементу &lt;b&gt;JQuery&lt;/b&gt; &lt;span style=&quot;color: red;&quot;&gt;сам проверяет&lt;/span&gt;, &lt;b&gt;есть ли уже этот класс&lt;/b&gt; у элемента.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;$(&#39;tr:not([th]):even&#39;).addClass(&#39;even&#39;)&lt;/span&gt;&lt;/b&gt; - чётные строки таблицы, кроме заголовка&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;$(&#39;td:contains(&quot;Henry&quot;)&#39;).next().addClass(&#39;highlight&#39;)&lt;/span&gt;&lt;/b&gt; - Следующий «сосед»&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;$(&#39;td:contains(&quot;Henry&quot;)&#39;).siblings().addClass(&#39;highlight&#39;)&lt;/span&gt;&lt;/b&gt; - все следующие «соседи»&lt;/div&gt;&lt;br /&gt;
Но что &lt;b&gt;самое замечательное&lt;/b&gt; - так это &lt;span style=&quot;font-size: large;&quot;&gt;цепочки&lt;/span&gt; !&lt;br /&gt;
В одной строке кода можно разместить &lt;span style=&quot;color: red;&quot;&gt;любую длинную комбинацию&lt;/span&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;$(&#39;td:contains(&quot;Henry&quot;)&#39;) . parent(). find(&#39;td:eq(1)&#39;).addClass(&#39;highlight&#39;). end(). find(&#39;td:eq(2)&#39;). addClass(&#39;highlight&#39;);&lt;/div&gt;&lt;br /&gt;
Супер!&lt;br /&gt;
&lt;br /&gt;
Каждый селектор/выражение&amp;nbsp; возвращает jQuery объект:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;var myTag = $(&#39;#my-element&#39;).get(0).tagName;&lt;/div&gt;&lt;br /&gt;
Вместо get(0) можно просто [0]: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;var myTag = $(&#39;#my-element&#39;).[0].tagName;&lt;/div&gt;</description><link>http://prostojavascript.blogspot.com/2010/03/53-selectors.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-3361633288354738917</guid><pubDate>Tue, 23 Mar 2010 08:46:00 +0000</pubDate><atom:updated>2011-01-25T00:48:32.485-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jquery</category><category domain="http://www.blogger.com/atom/ns#">изменение синтаксиса jquery</category><title>5.3 Новый синтаксис JQuery. Изменения в последних версиях библиотеки.</title><description>&lt;style&gt;
table.changes_list {border: 1px solid #0099cc;}
.changes_list th {border: 1px inset #0099cc; padding: 7px; }
.changes_list td {border: 1px inset #0099cc; padding: 7px; }
&lt;/style&gt;&lt;br /&gt;
Разбирая примеры из книг по &lt;b&gt;JQuery&lt;/b&gt;, столкнулся с тем, что кое-что не работает, как обещано.&lt;br /&gt;
Оказалось, что начиная с версии &lt;span style=&quot;color: red;&quot;&gt;1.3 &lt;/span&gt;были внесены изменения в синтаксис вызова функций.&lt;br /&gt;
&lt;br /&gt;
Получилась такая таблица ( буду дополнять по ходу):&lt;br /&gt;
&lt;br /&gt;
&lt;table cellspacing=&quot;0&quot; class=&quot;changes_list&quot;&gt;&lt;tbody&gt;
&lt;tr class=&quot;table-heading&quot;&gt;&lt;th&gt;.&lt;/th&gt;&lt;th&gt;Стало&lt;/th&gt;&lt;th&gt;Было&lt;/th&gt;&lt;th&gt;О чём речь &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;$(&#39;a[title]&#39;)&lt;/td&gt;&lt;td&gt;$(&#39;a[&lt;span style=&quot;color: red;&quot;&gt;@&lt;/span&gt;title]&#39;)&lt;/td&gt;&lt;td&gt;&lt;i&gt;все линки с атрибутом &lt;b&gt;title&lt;/b&gt;&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;$(&#39;div:has(ol)&#39;)&lt;/td&gt;&lt;td&gt;$(&#39;div[ol]&#39;)&lt;/td&gt;&lt;td&gt;&lt;i&gt;все &lt;b&gt;div&lt;/b&gt;, содержащие &lt;b&gt;ol&lt;/b&gt;&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;script&gt;
 $(&#39;.changes_list tr:not(:has(th)):even&#39;).addClass(&#39;even&#39;);
 $(&#39;.changes_list tr:not(:has(th)):odd&#39;).addClass(&#39;odd&#39;);
&lt;/script&gt;</description><link>http://prostojavascript.blogspot.com/2010/03/jquery.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-3043901835249799579</guid><pubDate>Mon, 08 Feb 2010 09:20:00 +0000</pubDate><atom:updated>2011-01-25T05:39:52.438-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">google jquery</category><category domain="http://www.blogger.com/atom/ns#">jquery</category><title>5.2 Learning JQuery. Примеры из книги через Google.</title><description>&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;$()&lt;/b&gt; &lt;/span&gt;- базовая функция библиотеки. Сокращение от &lt;span style=&quot;font-size: large;&quot;&gt;jQuery()&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;$(&#39;p&#39;)&lt;br /&gt;
$(&#39;#item_id&#39;)&lt;br /&gt;
$(&#39;.data_class&#39;)&lt;/div&gt;В скобках&amp;nbsp; - &lt;i&gt;любой селектор&lt;/i&gt;.&lt;br /&gt;
Мощь используемых селекторов - объединяет в себе &lt;b&gt;CSS&lt;/b&gt; и &lt;b&gt;xPath&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Ещё варианты.&lt;br /&gt;
Поиск элементов:&lt;br /&gt;
&lt;b&gt;$( selector, [ context ] )&lt;/b&gt;&lt;br /&gt;
где &lt;b&gt;selector&lt;/b&gt; - A string containing a selector expression&lt;br /&gt;
&lt;b&gt;context&lt;/b&gt;  - A DOM Element, Document, or jQuery to use as context&lt;br /&gt;
&lt;b&gt;$( element )&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;$( elementArray )&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;$( jQuery object )&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;$()&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Создание элементов:&lt;br /&gt;
&lt;b&gt;$( html, [ ownerDocument ] )&lt;/b&gt;&lt;br /&gt;
где html - A string of HTML to create on the fly (HTML, not XML).&lt;br /&gt;
ownerDocument - A document in which the new elements will be created&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;$( html, props )&lt;/b&gt;&lt;br /&gt;
где props - An map of attributes, events, and methods to call on the newly-created element.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;$( callback )&lt;/b&gt; - Executes the function when the DOM is ready to be used&lt;br /&gt;
Аналогично $(document).ready() &lt;br /&gt;
&lt;br /&gt;
На заметку - &lt;a href=&quot;http://www.futurecolors.ru/jquery/&quot;&gt;хорошая шпаргалка по JQuery 1.4&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Кстати, Google предоставляет &lt;b&gt;jquery&lt;/b&gt; блоггеру.&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
...some code here...
&amp;lt;/script&amp;gt;&lt;/pre&gt;Проверим:)&lt;br /&gt;
Возьмём живьём пример из книги &lt;b&gt;&quot;Learning JQuery&quot; by Jonathan Chaffer and Karl Swedberg&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Правда, примеры в книге написаны для версии &lt;span style=&quot;color: red;&quot;&gt;1.2.6.&lt;/span&gt; и чтобы использовать свежую версию &lt;span style=&quot;color: red;&quot;&gt;1.4.1&lt;/span&gt;, надо просто &lt;b&gt;убрать&lt;/b&gt; собаку &#39;&lt;b&gt;@&lt;/b&gt;&#39; в выражениях типа:&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt; &lt;span style=&quot;color: #0b5394;&quot;&gt;$(&#39;a[&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;href^=&quot;mailto:&quot;]&#39;)&lt;/span&gt;&lt;/span&gt; , т.е. получим :&lt;br /&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;$(&#39;a[href^=&quot;mailto:&quot;]&#39;)&lt;/span&gt;&amp;nbsp; (&lt;i&gt;это изменение сделали начиная с версии&lt;/i&gt; &lt;span style=&quot;color: red;&quot;&gt;1.3&lt;/span&gt;).&lt;br /&gt;
&lt;br /&gt;
А вот как выглядит&amp;nbsp; результат примера:&lt;br /&gt;
&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function() {
  $(&#39;#selected-plays &gt; li&#39;).addClass(&#39;horizontal&#39;);
  $(&#39;#selected-plays li:not(.horizontal)&#39;).addClass(&#39;sub-level&#39;);
});

// Add a class to all mailto and pdf links on the page.
$(document).ready(function() {
  $(&#39;a[href^=&quot;mailto:&quot;]&#39;).addClass(&#39;mailto&#39;);
  $(&#39;a[href$=&quot;.pdf&quot;]&#39;).addClass(&#39;pdflink&#39;);
  $(&#39;a[href*=&quot;mysite.com&quot;]&#39;).addClass(&#39;mysite&#39;);
});

// Give classes to even and odd table rows for zebra striping.
$(document).ready(function() {
  $(&#39;#example_table th&#39;).parent().addClass(&#39;table-heading&#39;);
  $(&#39;#example_table tr:not([th]):even&#39;).addClass(&#39;even&#39;);
  $(&#39;#example_table tr:not([th]):odd&#39;).addClass(&#39;odd&#39;);
  $(&#39;#example_table td:contains(&quot;Henry&quot;)&#39;).siblings().addClass(&#39;highlight&#39;);
});
&lt;/script&gt;&lt;br /&gt;
&lt;div id=&quot;container&quot;&gt;&lt;div id=&quot;chapter-number&quot;&gt;2&lt;/div&gt;&lt;h1&gt;Selectors&lt;/h1&gt;&lt;h1 class=&quot;subtitle&quot;&gt;How to Get Anything You Want&lt;/h1&gt;&lt;h2&gt;Selected ShakeSpeare Plays&lt;/h2&gt;&lt;ul class=&quot;clearfix&quot; id=&quot;selected-plays&quot;&gt;&lt;li&gt;Comedies&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.mysite.com/asyoulikeit/&quot;&gt;As You Like It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;All&#39;s Well That Ends Well&lt;/li&gt;
&lt;li&gt;A Midsummer Night&#39;s Dream&lt;/li&gt;
&lt;li&gt;Twelfth Night&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Tragedies&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.blogger.com/hamlet.pdf&quot;&gt;Hamlet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Macbeth&lt;/li&gt;
&lt;li&gt;Romeo and Juliet&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Histories&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Henry IV (&lt;a href=&quot;mailto:henryiv@king.co.uk&quot;&gt;email&lt;/a&gt;)  &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Part I&lt;/li&gt;
&lt;li&gt;Part II&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.shakespeare.co.uk/henryv.htm&quot;&gt;Henry V&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Richard II&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Shakespeare Table&lt;/h2&gt;&lt;div id=&quot;example_table&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;5&quot; cellspacing=&quot;1&quot;&gt;&lt;tbody&gt; &lt;/tbody&gt;&lt;thead&gt;&lt;th&gt;Title&lt;/th&gt;     &lt;th&gt;Category&lt;/th&gt;     &lt;th&gt;Year Published&lt;/th&gt;   &lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;    &lt;td&gt;As You Like It&lt;/td&gt;    &lt;td&gt;Comedy&lt;/td&gt;    &lt;td&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;    &lt;td&gt;All&#39;s Well that Ends Well&lt;/td&gt;    &lt;td&gt;Comedy&lt;/td&gt;    &lt;td&gt;1601&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;    &lt;td&gt;Hamlet&lt;/td&gt;    &lt;td&gt;Tragedy&lt;/td&gt;    &lt;td&gt;1604&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;    &lt;td&gt;Macbeth&lt;/td&gt;    &lt;td&gt;Tragedy&lt;/td&gt;    &lt;td&gt;1606&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;    &lt;td&gt;Romeo and Juliet&lt;/td&gt;    &lt;td&gt;Tragedy&lt;/td&gt;    &lt;td&gt;1595&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;    &lt;td&gt;Henry IV, Part I&lt;/td&gt;    &lt;td&gt;History&lt;/td&gt;    &lt;td&gt;1596&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;    &lt;td&gt;Henry V&lt;/td&gt;    &lt;td&gt;History&lt;/td&gt;    &lt;td&gt;1599&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Ух-ты! Всё работает!..&lt;br /&gt;
Google также предоставляет свежую версию JQuery &lt;span style=&quot;color: red;&quot;&gt;1.4.1&lt;/span&gt;.&lt;br /&gt;
Еще написано, что можно прописывать &lt;b&gt;google.load(&quot;jquery&quot;, &quot;1.4.1&quot;)&lt;/b&gt;, но всё работает и без этого. Пока не знаю , где надо использовать этот метод...&lt;br /&gt;
&lt;br /&gt;
А вот какие &lt;b&gt;интересные штучки&lt;/b&gt; в коде.&lt;br /&gt;
&lt;br /&gt;
Выбор &lt;b&gt;элементов списка&lt;/b&gt; заданного&lt;b&gt; id&lt;/b&gt; и условие&lt;b&gt; :not&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;$(document).ready(function() {&lt;br /&gt;
$(&#39;#selected-plays &amp;gt; li&#39;).addClass(&#39;horizontal&#39;);&lt;br /&gt;
$(&#39;#selected-plays li:not(.horizontal)&#39;).addClass(&#39;sub-level&#39;);});&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Добавление класса&lt;/b&gt; всем линкам &lt;b&gt;mailto&lt;/b&gt; и &lt;b&gt;pdf &lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;$(&#39;a[href^=&quot;mailto:&quot;]&#39;).addClass(&#39;mailto&#39;);&lt;br /&gt;
$(&#39;a[href$=&quot;.pdf&quot;]&#39;).addClass(&#39;pdflink&#39;);&lt;br /&gt;
$(&#39;a[href*=&quot;mysite.com&quot;]&#39;).addClass(&#39;mysite&#39;);&lt;/div&gt;&lt;br /&gt;
Выделение &lt;b&gt;чётных и нечётных строк&lt;/b&gt; таблицы&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;$(&#39;#example_table th&#39;).parent().addClass(&#39;table-heading&#39;);&lt;br /&gt;
$(&#39;#example_table tr:not([th]):even&#39;).addClass(&#39;even&#39;);&lt;br /&gt;
$(&#39;#example_table tr:not([th]):odd&#39;).addClass(&#39;odd&#39;);&lt;br /&gt;
$(&#39;#example_table td:contains(&quot;Henry&quot;)&#39;).siblings().addClass(&#39;highlight&#39;);&lt;/div&gt;&lt;br /&gt;
Везде используется функция:&lt;br /&gt;
&lt;b&gt;$(document).ready(function() {...});&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Этим гарантируется, что код будет&amp;nbsp; выполняться &lt;span style=&quot;color: red;&quot;&gt;только после загрузки всей страницы&lt;/span&gt;.</description><link>http://prostojavascript.blogspot.com/2010/02/learning-jquery-google.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-6103624508301927765</guid><pubDate>Thu, 21 Jan 2010 08:43:00 +0000</pubDate><atom:updated>2011-01-24T04:28:21.863-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jquery events</category><title>5.1 Events in JQuery</title><description>Собственно говоря, &lt;b&gt;один раз&lt;/b&gt; разобраться с различием моделей стандарта &lt;b&gt;W3C&lt;/b&gt; и &lt;b&gt;MS IE&lt;/b&gt; &lt;span style=&quot;color: red;&quot;&gt;полезно&lt;/span&gt;, безусловно. Один раз. Но всё время выполнять эти проверки и лепить свои функции - не рационально.&lt;br /&gt;
&lt;b&gt;JQuery&lt;/b&gt; делает всё это просто замечательно!&amp;nbsp; Берёт на себя все заботы по &lt;b&gt;различию браузеров&lt;/b&gt;.&lt;br /&gt;
Надо просто воспользоваться библиотекой - и вперёд!&lt;br /&gt;
&lt;br /&gt;
&lt;b style=&quot;color: blue;&quot;&gt;$(document).ready()&lt;/b&gt; event handler.&lt;br /&gt;
Выполняет функции встроенного события &lt;i&gt;&lt;span style=&quot;color: blue;&quot;&gt;onload&lt;/span&gt; &lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
Однако &lt;i style=&quot;color: blue;&quot;&gt;window.onload&lt;/i&gt; срабатывает, когда документ &lt;b&gt;полностью загружен&lt;/b&gt;. Т.е., каждый html-элемент на странице доступен для javascript.&lt;br /&gt;
&lt;br /&gt;
&lt;i style=&quot;color: blue;&quot;&gt;$(document).ready()&lt;/i&gt; срабатывает, когда DOM готов к использованию, &lt;b&gt;не ожидая загрузки связанных файлов&lt;/b&gt; (например, картинок).&lt;br /&gt;
&lt;i style=&quot;color: blue;&quot;&gt;window.onload&lt;/i&gt; можно присвоить &lt;span style=&quot;color: red;&quot;&gt;только один обработчик&lt;/span&gt;. Каждый &lt;b&gt;новый заменяет предыдущий&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Напротив, механизм &lt;i&gt;$(document).ready() &lt;/i&gt;&lt;span style=&quot;color: red;&quot;&gt;организует очередь&lt;/span&gt; вызовов обработчиков в порядке их регистрации.&lt;br /&gt;
&lt;br /&gt;
Эквивалентные сокращения&amp;nbsp; для &lt;i&gt;$(document).ready()&lt;/i&gt; :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;$().ready(function()&lt;/span&gt; &lt;/b&gt;{ ...наш код ...});&lt;br /&gt;
или&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt; $(function()&lt;/span&gt; &lt;/b&gt;{ ...наш код ...});&lt;br /&gt;
&lt;br /&gt;
Впрочем, придется немного вернуться назад - к кирпичикам JQuery.</description><link>http://prostojavascript.blogspot.com/2010/01/events-in-jquery.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-9183503794336773855</guid><pubDate>Wed, 20 Jan 2010 09:15:00 +0000</pubDate><atom:updated>2011-01-25T00:44:18.063-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">events list</category><category domain="http://www.blogger.com/atom/ns#">список событий</category><title>4.2 Список событий</title><description>&lt;b&gt;Для заметки&lt;/b&gt;.&lt;br /&gt;
Список &lt;b&gt;кросс-платформенных&lt;/b&gt; рекомендуемых &lt;b&gt;событий&lt;/b&gt; Javascript:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;blur&lt;/li&gt;
&lt;li&gt;change&lt;/li&gt;
&lt;li&gt;click&lt;/li&gt;
&lt;li&gt;dblclick&lt;/li&gt;
&lt;li&gt;error&lt;/li&gt;
&lt;li&gt;focus&lt;/li&gt;
&lt;li&gt;keydown&lt;/li&gt;
&lt;li&gt;keypress&lt;/li&gt;
&lt;li&gt;keyup&lt;/li&gt;
&lt;li&gt;load&lt;/li&gt;
&lt;li&gt;mousedown&lt;/li&gt;
&lt;li&gt;mousemove&lt;/li&gt;
&lt;li&gt;mouseout&lt;/li&gt;
&lt;li&gt;mouseover&lt;/li&gt;
&lt;li&gt;mouseup&lt;/li&gt;
&lt;li&gt;resize&lt;/li&gt;
&lt;li&gt;scroll&lt;/li&gt;
&lt;li&gt;select&lt;/li&gt;
&lt;li&gt;submit&lt;/li&gt;
&lt;li&gt;unload&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://prostojavascript.blogspot.com/2010/01/blog-post.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-1207749439028610781</guid><pubDate>Wed, 20 Jan 2010 08:55:00 +0000</pubDate><atom:updated>2011-01-24T04:29:25.917-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bubling</category><category domain="http://www.blogger.com/atom/ns#">capture</category><category domain="http://www.blogger.com/atom/ns#">events</category><category domain="http://www.blogger.com/atom/ns#">listeners</category><category domain="http://www.blogger.com/atom/ns#">target</category><category domain="http://www.blogger.com/atom/ns#">распространение событий</category><title>4.1 Events and Listeners</title><description>&lt;b&gt;Listener&lt;/b&gt; – обработчик, наблюдающий за &lt;i&gt;конкретным событием&lt;/i&gt;. Перевод не дает приемлемого понятия: слушатель,слухач, жучок...&lt;br /&gt;
Оставляем просто &lt;b&gt;листенер&lt;/b&gt;.&lt;br /&gt;
&lt;b&gt;Event handler&lt;/b&gt; – обработчик события (функция)&lt;br /&gt;
Привязка обработчика к событию:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;element.on&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;event&lt;/span&gt; = &lt;span style=&quot;color: blue;&quot;&gt;eventHandler&lt;/span&gt;;&lt;br /&gt;
&lt;br /&gt;
Например, &lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;var link = document.getElementById(&quot;myLink&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;link.onclick = myLink.clickHandler;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Обработчик события должен быть назначен &lt;span style=&quot;color: red;&quot;&gt;только после загрузки страницы&lt;/span&gt;, т.е на момент существования &lt;b&gt;html&lt;/b&gt;-элемента.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Default actions&lt;/b&gt;(действия по умолчанию). &lt;br /&gt;
Например:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&amp;nbsp;браузер &lt;b&gt;следует&lt;/b&gt; по кликнутой ссылке, &lt;/li&gt;
&lt;li&gt;&amp;nbsp;сабмитит форму при нажатии кнопки &lt;b&gt;submit&lt;/b&gt; или&amp;nbsp; &lt;b&gt;enter&lt;/b&gt; в форме,&lt;/li&gt;
&lt;li&gt;&amp;nbsp;перемещает &lt;b&gt;keyboard focus&lt;/b&gt; при нажатии &lt;b&gt;tab&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;b&gt;Отмена&lt;/b&gt;&amp;nbsp; default action&amp;nbsp; – возврат&lt;b&gt; false&lt;/b&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: blue;&quot;&gt;var myLink = { clickHandler: function() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return confirm(&quot;Are you sure you want to leave this site?&quot;);}&lt;br /&gt;
};}&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Функция &lt;b&gt;confirm&lt;/b&gt; (аналог &lt;b&gt;alert&lt;/b&gt;) возвращает &lt;span style=&quot;color: red;&quot;&gt;true&lt;/span&gt; при нажатии &lt;b&gt;Ok &lt;/b&gt;и &lt;span style=&quot;color: red;&quot;&gt;false&lt;/span&gt; при нажатии &lt;b&gt;Cancel&lt;/b&gt;..&lt;br /&gt;
Эти ф-ции &lt;b&gt;встроены в браузер&lt;/b&gt;!!!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Event handler&lt;/b&gt; может обрабатывать события для &lt;b&gt;нескольких&lt;/b&gt; элементов!&lt;br /&gt;
Используется ключевое слово &lt;b&gt;this&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Например, открывать все линки в новом окне:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;clickHandler: function() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; open(this.href);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
При вызове метода объекта &lt;b&gt;object.method()&lt;/b&gt; внутри кода этого метода ключевое слово &lt;b&gt;this &lt;/b&gt;&lt;span style=&quot;color: red;&quot;&gt;относится к данному объекту&lt;/span&gt;.&lt;br /&gt;
Можно выделить только часть линков в класс&lt;b&gt; external&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;var externalLinks = {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;init: function(){&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;var extLinks = Core.getElementsByClass(&quot;external&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;for (var i = 0; i &amp;lt; extLinks.length; i++) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp; extLinks[i].onclick = externalLinks.clickHandler;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;},&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;clickHandler: function() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;open(this.href);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;return false;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;}};&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Для &lt;b&gt;конкретного события&lt;/b&gt; в привязке к конкретному&lt;b&gt; html-элементу&lt;/b&gt; можно назначить &lt;span style=&quot;color: red;&quot;&gt;только один обработчик&lt;/span&gt; .&lt;br /&gt;
&lt;br /&gt;
А по жизни - нужно несколько. Например, при обработке полей формы кнопке &lt;b&gt;submit&lt;/b&gt; нужно назначить &lt;b&gt;разные обработчики&lt;/b&gt; проверки корректности данных.&lt;br /&gt;
&lt;br /&gt;
Ограничение обходится с помощью &lt;b&gt;event listeners&lt;/b&gt;.&lt;br /&gt;
W3C:&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;element.addEventListener(&quot;event&quot;, eventListener, false);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;element.removeEventListener(&quot;event&quot;, eventListener, false);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
MS IE опять выделилась:&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;element.attachEvent(&quot;onevent&quot;, eventListener);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;element.detachEvent(&quot;onevent&quot;, eventListener);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Отмена &lt;b&gt;default actions&lt;/b&gt;:&lt;br /&gt;
W3C: метод &lt;span style=&quot;color: blue;&quot;&gt;preventDefault()&lt;/span&gt;,&lt;br /&gt;
Модель событий MS – объект &lt;b&gt;event&lt;/b&gt; &lt;span style=&quot;color: red;&quot;&gt;не передаётся листенеру&lt;/span&gt; , а доступен через&lt;b&gt; глобальный объект event&lt;/b&gt; со свойством &lt;b&gt;returnValue&lt;/b&gt; вместо метода:&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;event.returnValue = false;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Различение браузеров &lt;/b&gt;– способом проверки объекта &lt;b&gt;typeof&lt;/b&gt;.&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;clickListener: function(event) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp; if (typeof event == &quot;undefined&quot;) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event = window.event;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp; if (!confirm(&quot;Are you sure you want to leave this site?&quot;))&amp;nbsp; {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (typeof event.preventDefault != &quot;undefined&quot;) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event.preventDefault();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event.returnValue = false;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; }}}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Распространиение событий в ДОМ&lt;/b&gt;е. 3 фазы:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;capture (&lt;span style=&quot;color: red;&quot;&gt;нет&lt;/span&gt; в MS IE)&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;target&lt;/li&gt;
&lt;li&gt;bubling&lt;/li&gt;
&lt;/ol&gt;Во время фазы &lt;b&gt;capture&lt;/b&gt; событие продвигается по ДОМу начиная с &lt;b&gt;document, html, body&lt;/b&gt; вплоть до элемента и на каждом этапе &lt;i&gt;проверяет наличие&lt;/i&gt; &lt;b&gt;capture event listener&lt;/b&gt; для этого типа события. Если есть такой - запускается.&amp;nbsp; Тип листенера задаётся 3-м параметром true/false. Этот параметр отсутствует в MS IE, поскольку в схеме MS &lt;span style=&quot;color: red;&quot;&gt;нет&lt;/span&gt; 1-й фазы.&lt;br /&gt;
&lt;br /&gt;
На 2-й фазе &lt;b&gt;target &lt;/b&gt;запускается листенер элемента.&lt;br /&gt;
На 3-й фазе bubling событие перемещается вверх по ДОМу и на каждом шаге запускается (если есть) &lt;b&gt;not capturing event listener&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Отмена фазы bubling&lt;/b&gt;:&lt;br /&gt;
W3C:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;event.stopPropagation();&lt;/span&gt;&lt;br /&gt;
MS IE:&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;event.cancelBubble = true;&amp;nbsp; &lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;snapshot_area&quot; style=&quot;height: 240px;&quot;&gt;&lt;div class=&quot;zoom_bar&quot;&gt;Кликни&lt;a&gt;&lt;img alt=&quot;Zoom-in button&quot; onclick=&quot;zoom_in(&#39;IMG_20100120&#39;);&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1M2zNu3VsmHQVhTRchC0qB38ZRJiJT1uzyixnD4NU0eBPqpTR1mAzBSH4Ve5b4dfr6uc1s7Ve6tuvv1HuqCj1tEwUK7bxxwxJz7rIUEMfeg2HAHwFTHoMoSRRsJocal9J5T1vfjMPSbI/s320/plus1.png&quot; title=&quot;Увеличить&quot; /&gt;&lt;/a&gt; или &lt;a&gt;&lt;img alt=&quot;Zoom-out button&quot; onclick=&quot;zoom_out(&#39;IMG_20100120&#39;);&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0L0EQU008nHqgEtuzbNLc6AZhGRVpGccci9fbmTmS2LMUlbhjc1W2RuFVr11CchyphenhyphencXi3F3CBPa37_1JLjSBrhD4T9cEUMjNlhYaT3XWdajUWPLkyTEBO-AwxNvvvl2PlizdZucs2T2Ac/s320/minus1.png&quot; title=&quot;Уменьшить&quot; /&gt;&lt;/a&gt; чтобы увеличить/уменьшить изображение...&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;snapshot_img&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAOLGH9hxAFAHZftMmi2HGrwYkqaWWJMhJ8RNZgriuLyknIdrxE6lWecikNFIudcGUbcdUEhORXVWaKCZGvr0sRi4vBQAxQPBl_CurpDhu9rI7BEZaanhuAwic9W-NEfA2yx6LxIbCm7z6/&quot;&gt;&lt;br /&gt;
&lt;img alt=&quot;Events and listeners&quot; height=&quot;200&quot; id=&quot;IMG_20100120&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAOLGH9hxAFAHZftMmi2HGrwYkqaWWJMhJ8RNZgriuLyknIdrxE6lWecikNFIudcGUbcdUEhORXVWaKCZGvr0sRi4vBQAxQPBl_CurpDhu9rI7BEZaanhuAwic9W-NEfA2yx6LxIbCm7z6/&quot; title=&quot;Events and listeners&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</description><link>http://prostojavascript.blogspot.com/2010/01/events-and-listeners.html</link><author>noreply@blogger.com (Sergey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1M2zNu3VsmHQVhTRchC0qB38ZRJiJT1uzyixnD4NU0eBPqpTR1mAzBSH4Ve5b4dfr6uc1s7Ve6tuvv1HuqCj1tEwUK7bxxwxJz7rIUEMfeg2HAHwFTHoMoSRRsJocal9J5T1vfjMPSbI/s72-c/plus1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-9185334324289062559</guid><pubDate>Mon, 16 Nov 2009 14:50:00 +0000</pubDate><atom:updated>2009-11-18T06:31:22.465-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">getElementById</category><category domain="http://www.blogger.com/atom/ns#">getElementsByTagName</category><category domain="http://www.blogger.com/atom/ns#">walking the DOM</category><category domain="http://www.blogger.com/atom/ns#">навигация dom</category><title>3.2 Прогулка по DOMу. Доступ к элементам.</title><description>Перемещение по html-документу с помощью стандартных функций доступа.&lt;br /&gt;
&lt;br /&gt;
По ID элемента и по имени:&lt;br /&gt;
&lt;ol&gt;&lt;/ol&gt;&lt;div style=&quot;color: blue;&quot;&gt;document.getElementById(&quot;id&quot;)&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;document.getElementsByTagName(&quot;tagname&quot;)&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Надо &lt;b&gt;всегда выполнять проверку&lt;/b&gt; на &lt;span style=&quot;color: blue;&quot;&gt;null&lt;/span&gt; для &lt;span style=&quot;color: blue;&quot;&gt;getElementById&lt;/span&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;var target = document.getElementById(&quot;sender&quot;);&lt;br /&gt;
if (target != &lt;span style=&quot;color: red;&quot;&gt;null&lt;/span&gt;)&lt;br /&gt;
{&lt;br /&gt;
alert(target.nodeName);&lt;br /&gt;
}&lt;br /&gt;
&lt;/div&gt;а для &lt;span style=&quot;color: blue;&quot;&gt;getElementsByTagName&lt;/span&gt; - &lt;b&gt;длину массива&lt;/b&gt; = 0:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;var listItems = document.getElementsByTagName(&quot;li&quot;);&lt;br /&gt;
var numItems = listItems.&lt;span style=&quot;color: red;&quot;&gt;length&lt;/span&gt;;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Первое время спотыкался в названии функции &lt;span style=&quot;color: blue;&quot;&gt;getElementByTagName&lt;/span&gt; вместо &lt;span style=&quot;background-color: white; color: blue;&quot;&gt;getElement&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;byTagName&lt;/span&gt; и в &lt;b&gt;правильном верхнем/нижнем регистрах&lt;/b&gt; названий функций. Напишешь вроде бы правильно - а ничего не работает...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Сужение списка элементов&lt;/b&gt;.&lt;br /&gt;
Получаем более общий список, а затем внутри применяем ту же функцию &lt;span style=&quot;color: blue;&quot;&gt;getElementsByTagName&lt;/span&gt;:&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;var lists = document.getElementsByTagName(&quot;ul&quot;);&lt;br /&gt;
var secondList = lists[1];&lt;br /&gt;
var secondListItems = secondList.getElementsByTagName(&quot;li&quot;);&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Массив ВСЕХ элементов&lt;/b&gt; html страницы:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;var elementArray = [];&lt;br /&gt;
if (typeof document.all != &quot;undefined&quot;) {&lt;br /&gt;
elementArray = &lt;span style=&quot;color: blue;&quot;&gt;document.all&lt;/span&gt;;&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
elementArray = document.&lt;span style=&quot;color: blue;&quot;&gt;getElementsByTagName(&quot;*&quot;)&lt;/span&gt;;&lt;br /&gt;
} &lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Поиск элемента по имени класса&lt;/b&gt;.&lt;br /&gt;
Стандартной функции нет, поэтому разные библиотеки предлагают свои.Вот пример реализации:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;Core.getElementsByClass = function(theClass) {&lt;br /&gt;
var elementArray = [];&lt;br /&gt;
if (document.all) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; elementArray = document.all;&lt;br /&gt;
} else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; elementArray = documentGetElementsByName(&quot;*&quot;);&lt;br /&gt;
}&lt;br /&gt;
var matchedArray = [];&lt;br /&gt;
var pattern = new RegExp(&quot;(^| )&quot; + theClass + &quot;( |$)&quot;);&lt;br /&gt;
for (var i = 0; i &amp;lt; elementArray.length; i++) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pattern.test(elementArray[i].className)) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; matchedArray[matchedArray.length] = elementArray[i];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}      return matchedArray;&lt;br /&gt;
}; &lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Через &lt;b&gt;свойства DOM&lt;/b&gt; элемента можно найти &lt;b&gt;родительский&lt;/b&gt; элемент, &lt;b&gt;дочерние&lt;/b&gt;, &lt;b&gt;соседей&lt;/b&gt;:&lt;br /&gt;
&lt;div class=&quot;code_example&quot;&gt;var oliver = document.getElementById(&quot;oliver&quot;);&lt;br /&gt;
var paragraph = oliver.&lt;b&gt;parentNode&lt;/b&gt;;&lt;br /&gt;
var child1 = paragraph.&lt;b&gt;childNodes&lt;/b&gt;[0];&lt;br /&gt;
var alex = paragraph.&lt;b&gt;firstChild&lt;/b&gt;;&lt;br /&gt;
var jone = paragraph.&lt;b&gt;lastChild&lt;/b&gt;;&lt;br /&gt;
var tom = alex.&lt;b&gt;nextSibling&lt;/b&gt;;&lt;br /&gt;
var ann = tom.&lt;b&gt;previousSibling&lt;/b&gt;;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Вот такая прогулка по ДОМу...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSNFUNcAn3U-vNRi9_WrpdCuo4mt4l3sDHy1ycOflg_MD6V8A53f6e1vK8QPXWmUOXEMkpxYr2PYCoBydm8hJhj_y202JqDUzQZ6RXBGlhGJUpBhBS2_Z3gfRwFViEaFUpbq_Z3iMXs041/&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Walking the DOM&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSNFUNcAn3U-vNRi9_WrpdCuo4mt4l3sDHy1ycOflg_MD6V8A53f6e1vK8QPXWmUOXEMkpxYr2PYCoBydm8hJhj_y202JqDUzQZ6RXBGlhGJUpBhBS2_Z3gfRwFViEaFUpbq_Z3iMXs041/&quot; title=&quot;Прогулка по ДОМу&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;</description><link>http://prostojavascript.blogspot.com/2009/11/dom.html</link><author>noreply@blogger.com (Sergey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSNFUNcAn3U-vNRi9_WrpdCuo4mt4l3sDHy1ycOflg_MD6V8A53f6e1vK8QPXWmUOXEMkpxYr2PYCoBydm8hJhj_y202JqDUzQZ6RXBGlhGJUpBhBS2_Z3gfRwFViEaFUpbq_Z3iMXs041/s72-c" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-3314848771346455332</guid><pubDate>Thu, 12 Nov 2009 08:04:00 +0000</pubDate><atom:updated>2009-12-18T01:14:35.169-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DOM</category><category domain="http://www.blogger.com/atom/ns#">javascript</category><title>3.1. DOM. Document Access.</title><description>Для доступа, создания, манипуляций с частями документа консорциумом W3C была создана &lt;span style=&quot;font-weight: bold;&quot;&gt;Document Object Model (DOM) &lt;/span&gt;- система, позволяющая скриптам воздействовать на документ. С её помощью javascript может не только изменять структуру документа, но и получать доступ к стилям документа и изменть его вид.&lt;br /&gt;
Как только браузер загрузил документ (просто как последовательность символов), он начинает разбирать его и сохраняет интерпретацию html-кода в виде дерева &lt;span style=&quot;font-weight: bold;&quot;&gt;DOM&lt;/span&gt;.&lt;br /&gt;
Согласно этой модели, &lt;span style=&quot;font-weight: bold;&quot;&gt;каждый элемент&lt;/span&gt; HTML- документа становится &lt;span style=&quot;font-weight: bold;&quot;&gt;объектом&lt;/span&gt;.&lt;br /&gt;
Javascript может получить доступ к этим элементам с пом. встроенных функций на лету. DOM связывает каждый созданный объект для элемента HTML с соответствующим &lt;span style=&quot;font-weight: bold;&quot;&gt;родителем/потомком&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
Для построения &lt;span style=&quot;font-weight: bold;&quot;&gt;DOM&lt;/span&gt; документа каждомый элемент в html представляется в виде &lt;span style=&quot;font-weight: bold;&quot;&gt;node&lt;/span&gt; с позицией, определяемой нодами родителей/потомков.  Каждый &lt;span style=&quot;font-weight: bold;&quot;&gt;element node&lt;/span&gt; х-зуется именем элемента (head,body,h1,...), но это имя не уникально. Уникальность обеспечивается, например, атрибутом &lt;span style=&quot;font-weight: bold;&quot;&gt;id&lt;/span&gt;. На вершине дерева всегда находится &lt;span style=&quot;font-weight: bold;&quot;&gt;document node&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;snapshot_area&quot; style=&quot;height: 160px;&quot;&gt;&lt;div class=&quot;zoom_bar&quot;&gt;Кликни&lt;a&gt;&lt;img onclick=&quot;zoom_in(&#39;BLOGGER_PHOTO_ID_5340104419083780162&#39;);&quot; alt=&quot;Zoom-in button&quot; title=&quot;Увеличить&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1M2zNu3VsmHQVhTRchC0qB38ZRJiJT1uzyixnD4NU0eBPqpTR1mAzBSH4Ve5b4dfr6uc1s7Ve6tuvv1HuqCj1tEwUK7bxxwxJz7rIUEMfeg2HAHwFTHoMoSRRsJocal9J5T1vfjMPSbI/s320/plus1.png&quot; /&gt;&lt;/a&gt;или&lt;a&gt;&lt;img onclick=&quot;zoom_out(&#39;BLOGGER_PHOTO_ID_5340104419083780162&#39;);&quot; alt=&quot;Zoom-out button&quot; title=&quot;Уменьшить&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0L0EQU008nHqgEtuzbNLc6AZhGRVpGccci9fbmTmS2LMUlbhjc1W2RuFVr11CchyphenhyphencXi3F3CBPa37_1JLjSBrhD4T9cEUMjNlhYaT3XWdajUWPLkyTEBO-AwxNvvvl2PlizdZucs2T2Ac/s320/minus1.png&quot; /&gt;&lt;/a&gt;чтобы увеличить/уменьшить изображение...&lt;/div&gt;&lt;div class=&quot;snapshot_img&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisYt5NyNLg51yTQ7yiuNiJvRUMUHfIrkdsGLr2sDtasjBQzTBEZK_xzlzV4nFKxYbyphWo5y_m50HJCpN0XwRqG4I2a_71nMoWkjVtvkHEGkAsCpWntmAMOJx6VI8lq3k7-Aq_QiO-hDM/&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5340104419083780162&quot; height=&quot;120px&quot; alt=&quot;DOM walk&quot; title=&quot;Прогулка по DOMу&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisYt5NyNLg51yTQ7yiuNiJvRUMUHfIrkdsGLr2sDtasjBQzTBEZK_xzlzV4nFKxYbyphWo5y_m50HJCpN0XwRqG4I2a_71nMoWkjVtvkHEGkAsCpWntmAMOJx6VI8lq3k7-Aq_QiO-hDM/&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
В перевод node - узел, но как-то звучит не очень. Буду исп. оригинальную терминологию. &lt;span style=&quot;font-weight: bold;&quot;&gt;Element nodes&lt;/span&gt; - один из видов nodes, соответствующий элементам HTML. Однако действительный контент документа находится в других нодах - &lt;span style=&quot;font-weight: bold;&quot;&gt;text nodes&lt;/span&gt; и &lt;span style=&quot;font-weight: bold;&quot;&gt;attribute nodes&lt;/span&gt;.&lt;br /&gt;
Всё, что расположено между угловыми скобками &amp;gt;&amp;lt;, относится к &lt;span style=&quot;font-weight: bold;&quot;&gt;text node&lt;/span&gt; в DOM.&lt;br /&gt;
Основное отличие от &lt;span style=&quot;font-weight: bold;&quot;&gt;elemеnet nodes:&lt;/span&gt;   &lt;span style=&quot;font-weight: bold;&quot;&gt;text nodes&lt;/span&gt; &lt;span style=&quot;color: red;&quot;&gt;не имеют потомков&lt;/span&gt;!&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание, что &lt;span style=&quot;font-weight: bold;&quot;&gt;пробелы&lt;/span&gt;, новая строка, возврат каретки могут образовывать &lt;span style=&quot;font-weight: bold;&quot;&gt;text nodes&lt;/span&gt;. Такие&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;text nodes&lt;/span&gt; по-разному обрабатываются разными браузерами.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Attribute nodes&lt;/span&gt; являются частью html  элементов (&lt;span style=&quot;font-weight: bold;&quot;&gt;element nodes&lt;/span&gt;).  Но они &lt;span style=&quot;color: red;&quot;&gt;не являются потомками&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;element nodes.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAtoBf8-uSDJfBDAfFXFfS9GVJ6YfxHosIeKGkwSOt_p-tmx37VkRzRBQnl_3-Vd47EW9Y-XxnjUJfdO9rplL9BJB4tiyZxxir3AQ1GNDEaYeRp0II-O-ljwNvyhTrhZ8xmLN_l4DqaU8/s1600-h/DOMattributenode.png&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5340110689131693698&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAtoBf8-uSDJfBDAfFXFfS9GVJ6YfxHosIeKGkwSOt_p-tmx37VkRzRBQnl_3-Vd47EW9Y-XxnjUJfdO9rplL9BJB4tiyZxxir3AQ1GNDEaYeRp0II-O-ljwNvyhTrhZ8xmLN_l4DqaU8/s400/DOMattributenode.png&quot; style=&quot;cursor: pointer; height: 264px; width: 280px;&quot; /&gt;&lt;/a&gt;</description><link>http://prostojavascript.blogspot.com/2009/11/31-dom-document-access.html</link><author>noreply@blogger.com (Sergey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1M2zNu3VsmHQVhTRchC0qB38ZRJiJT1uzyixnD4NU0eBPqpTR1mAzBSH4Ve5b4dfr6uc1s7Ve6tuvv1HuqCj1tEwUK7bxxwxJz7rIUEMfeg2HAHwFTHoMoSRRsJocal9J5T1vfjMPSbI/s72-c/plus1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-5305360927694339822</guid><pubDate>Thu, 12 Nov 2009 08:03:00 +0000</pubDate><atom:updated>2010-08-18T05:10:07.926-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">variables</category><title>2. Программирование на Javascript</title><description>В теле HTML код Javascript размещается внутри тега &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;script&amp;gt;&lt;/span&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;example&quot;&gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Если скрипт в отдельном файле, то указываем ссылку:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;example&quot;&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt; src=&quot;example.js&quot;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Скрипт выполняется &lt;span style=&quot;font-weight: bold;&quot;&gt;сразу&lt;/span&gt;  после его загрузки браузером.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Объявление переменных.&lt;/span&gt;&lt;br /&gt;
Безопаснее &lt;span style=&quot;color: #cc0000;&quot;&gt;всегда&lt;/span&gt; использовать ключевое слово &lt;span style=&quot;font-weight: bold;&quot;&gt;var&lt;/span&gt; при объявлении переменной.&lt;br /&gt;
&lt;br /&gt;
Javascript не заботится о том, что хранится в переменной. Одна и таже переменная может хранить символ, затем число, затем снова текст или что-угодно.&lt;br /&gt;
Определены 4 типа переменых:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;числа&lt;/li&gt;
&lt;li&gt;строки&lt;/li&gt;
&lt;li&gt;логический тип&lt;/li&gt;
&lt;li&gt;массивы&lt;/li&gt;
&lt;li&gt;объекты&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Операторы&lt;/span&gt; ++ и --- как в Си:&lt;br /&gt;
age++;&lt;br /&gt;
--j;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Конкатенация&lt;/span&gt; строк:&lt;br /&gt;
var sentence = &quot;You are &quot; + 1337&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Логические&lt;/span&gt;:&lt;br /&gt;
var lying = true;&lt;br /&gt;
var truthful = false;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Массив&lt;/span&gt;:&lt;br /&gt;
var rack = [];&lt;br /&gt;
rack[0] = &quot;First&quot;;&lt;br /&gt;
rack[1] = &quot;Second&quot;;&lt;br /&gt;
&lt;br /&gt;
var rack = [&quot;First&quot;, &quot;Second&quot;, &quot;Third&quot;, &quot;Fourth&quot;];&lt;br /&gt;
var numberArray = [1, 2, 3, 5, 8, 13, 21, 34];&lt;br /&gt;
var mixedArray = [235, &quot;Parramatta&quot;, &quot;Road&quot;];&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Многомерный массив&lt;/span&gt;:&lt;br /&gt;
var subArray1 = [&quot;Paris&quot;, &quot;Lyon&quot;, &quot;Nice&quot;];&lt;br /&gt;
var subArray2 = [&quot;Amsterdam&quot;, &quot;Eindhoven&quot;, &quot;Utrecht&quot;];&lt;br /&gt;
var subArray3 = [&quot;Madrid&quot;, &quot;Barcelona&quot;, &quot;Seville&quot;];&lt;br /&gt;
var superArray = [subArray1, subArray2, subArray3];&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Обращение к элементу&lt;/span&gt; :&lt;br /&gt;
var city = superArray[0][2];&lt;br /&gt;
&lt;br /&gt;
Наиболее часто исп. св-в- массива - его &lt;span style=&quot;font-weight: bold;&quot;&gt;длина&lt;/span&gt;:&lt;br /&gt;
var shortArray = [&quot;First&quot;, &quot;Second&quot;, &quot;Third&quot;];&lt;br /&gt;
var total = shortArray.length;&lt;br /&gt;
&lt;br /&gt;
var lastItem = shortArray[shortArray.length – 1];&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Добавление&lt;/span&gt; нового элемента:&lt;br /&gt;
shortArray[shortArray.length] = &quot;Fourth&quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Ассоциативные массивы&lt;/span&gt; (хэши):&lt;br /&gt;
var postcodes = [];&lt;br /&gt;
postcodes[&quot;Armadale&quot;] = 3143;&lt;br /&gt;
postcodes[&quot;North Melbourne&quot;] = 3051;&lt;br /&gt;
postcodes[&quot;Camperdown&quot;] = 2050;&lt;br /&gt;
postcodes[&quot;Annandale&quot;] = 2038;&lt;br /&gt;
&lt;br /&gt;
Стандартные &lt;span style=&quot;font-weight: bold;&quot;&gt;if-else, while, do while, for()&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Передача аргументов&lt;/span&gt; функции:&lt;br /&gt;
&lt;br /&gt;
function sandwich(bread, meat)&lt;br /&gt;
{&lt;br /&gt;
alert(bread + meat + bread);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sandwich(&quot;Rye&quot;, &quot;Pastrami&quot;);&lt;br /&gt;
&lt;br /&gt;
Также аргументы функции доступны через массив &lt;span style=&quot;font-weight: bold;&quot;&gt;arguments&lt;/span&gt;:&lt;br /&gt;
&lt;br /&gt;
debate(&quot;affirmative&quot;, &quot;negative&quot;);&lt;br /&gt;
&lt;br /&gt;
function debate()&lt;br /&gt;
{&lt;br /&gt;
var affirmative = arguments[0];&lt;br /&gt;
var negative = arguments[1];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Возврат значения из функции - &lt;span style=&quot;font-weight: bold;&quot;&gt;return&lt;/span&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Область видимости&lt;/span&gt; переменых. Переменные, объявленные вне функции,&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt; доступны другим функциям javascript в пределах той же html-страницы. Это  &lt;span style=&quot;font-weight: bold;&quot;&gt;global scope&lt;/span&gt;.&lt;br /&gt;
С помощью ключевого слова &lt;span style=&quot;font-weight: bold;&quot;&gt;var&lt;/span&gt; переменные обявляются внутри функции как &lt;span style=&quot;font-weight: bold;&quot;&gt;local scope&lt;/span&gt; и доступны только внутри данной функции.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;ОБЪЕКТЫ.&lt;/span&gt;&lt;br /&gt;
Представляют собой &lt;span style=&quot;font-weight: bold;&quot;&gt;амальгаму&lt;/span&gt; всех других типов данных.&lt;br /&gt;
Объкты существуют как способ организации переменных и функций в логические группы.&lt;br /&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;Свойства&lt;/span&gt; объекта предст. собой  переменные, доступные только через объект.&lt;br /&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;Методы&lt;/span&gt; - это функции, доступные только через объект.&lt;br /&gt;
Примером встроенного объекта является &lt;span style=&quot;font-weight: bold;&quot;&gt;массив&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Создание&lt;/span&gt; объекта:&lt;br /&gt;
var Robot = new Object();&lt;br /&gt;
&lt;br /&gt;
Теперь можно добавлять к объекту свойства и методы:&lt;br /&gt;
Robot.color =&quot;red&quot;;&lt;br /&gt;
Robot.displayMessage = function() {&lt;br /&gt;
alert(&quot;Some message&quot;);&lt;br /&gt;
};    //&lt;span style=&quot;color: red;&quot;&gt;обязательно точка запятой при таком объявлении!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Вызов:  Robot.displayMessage();&lt;br /&gt;
&lt;br /&gt;
Использование &lt;span style=&quot;font-weight: bold;&quot;&gt;литерального синтаксиса&lt;/span&gt; объекта:&lt;br /&gt;
&lt;br /&gt;
var Robot =&lt;br /&gt;
{&lt;br /&gt;
color: &quot;red&quot;,&lt;br /&gt;
displayMessage: function()&lt;br /&gt;
{&lt;br /&gt;
alert(&quot;Some message&quot;);&lt;br /&gt;
}&lt;br /&gt;
}; //&lt;span style=&quot;color: red;&quot;&gt;обязательно точка запятой !&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Unobtrusive Scripting&lt;/span&gt; in the Real World&lt;br /&gt;
В большинстве случаев, практически всегда, код javascript загружается раньше кода всей html-страницы. Это может привести к некоторым незначительным проблемам. Браузеры выполняют код javascript &lt;span style=&quot;font-weight: bold;&quot;&gt;сразу&lt;/span&gt; после его загрузки, не дожидаясь загрузки всей страницы.  Если в коде есть обращение к элементов, которые ещё не загрузились, то можно не увидеть ожидаемого эффекта.&lt;br /&gt;
Для облегчения жизни создаётся специальный объект &lt;span style=&quot;font-weight: bold;&quot;&gt;Core&lt;/span&gt; с методом &lt;span style=&quot;font-weight: bold;&quot;&gt;start()&lt;/span&gt;, который наблюдает за статусом загрузки страницы и сообщает нашей функции, когда можно безопасно выполняться. Это делается вызовом метода&lt;span style=&quot;font-weight: bold;&quot;&gt; init()&lt;/span&gt; нашего объекта.&lt;br /&gt;
Т.о., наш объект выглядит :&lt;br /&gt;
&lt;br /&gt;
var Robot = {&lt;br /&gt;
init: function()&lt;br /&gt;
{&lt;br /&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;Your HTML modifying code&lt;/span&gt;&lt;br /&gt;
}&lt;br /&gt;
};&lt;br /&gt;
Core.start(Robot);</description><link>http://prostojavascript.blogspot.com/2009/11/2-javascript.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8013757196449832640.post-383830249920591740</guid><pubDate>Thu, 12 Nov 2009 08:00:00 +0000</pubDate><atom:updated>2011-01-25T00:41:04.340-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">behaviour</category><category domain="http://www.blogger.com/atom/ns#">content</category><category domain="http://www.blogger.com/atom/ns#">presentation</category><category domain="http://www.blogger.com/atom/ns#">три кита www</category><title>1.Три кита построения web-приложений</title><description>&lt;span style=&quot;font-weight: bold;&quot;&gt;The Three Layers of the Web&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
На схеме представлены &lt;b&gt;три кита www&lt;/b&gt;:&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz5vo5dT1AwrLB0kvKgSmzQ2nZf6u9ehHMV7Io7wS6EIKyyC2FsGcKB2gojZeK-sncFA3s6djUpukbzwdQ-8dG8gcXWXeK-Ei7kIySpthHJ3PRD4zRKPAdLhyphenhyphen3Gp51HUunaRoP9Gy8affe/s1600-h/The+Three+Layers+of+the+Web.png&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;The Three Layers of the Web&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5336011257446632754&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz5vo5dT1AwrLB0kvKgSmzQ2nZf6u9ehHMV7Io7wS6EIKyyC2FsGcKB2gojZeK-sncFA3s6djUpukbzwdQ-8dG8gcXWXeK-Ei7kIySpthHJ3PRD4zRKPAdLhyphenhyphen3Gp51HUunaRoP9Gy8affe/s400/The+Three+Layers+of+the+Web.png&quot; style=&quot;cursor: pointer; height: 154px; width: 300px;&quot; title=&quot;The Three Layers of the Web&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Грамотный подход в web-дизайне - использование &lt;span style=&quot;font-weight: bold;&quot;&gt;3-х уровней&lt;/span&gt;: &lt;br /&gt;
&lt;ol type=&quot;1&quot;&gt;&lt;li&gt;Content - HTML &lt;/li&gt;
&lt;li&gt;Presentation - CSS &lt;/li&gt;
&lt;li&gt;Behaviour - JavaScript&lt;/li&gt;
&lt;/ol&gt;Другими словами, the &lt;span style=&quot;font-weight: bold;&quot;&gt;separation of concerns&lt;/span&gt; (&lt;i&gt;отделение мух от  котлет&lt;/i&gt;...).&lt;br /&gt;
&lt;br /&gt;
Раздельное хранение этих 3-х типов кода - упрощает &lt;b&gt;повторное использование&lt;/b&gt;, сокращает &lt;b&gt;дублирование&lt;/b&gt; и облегчает &lt;b&gt;поиск ошибок&lt;/b&gt;.&lt;br /&gt;
&lt;b&gt;Javascript&lt;/b&gt; изнутри значительно больше, чем он кажется снаружи - как &lt;span style=&quot;font-weight: bold;&quot;&gt;Tardis &lt;/span&gt;языков программирования.&lt;br /&gt;
&lt;br /&gt;
Наиболее популярные &lt;b&gt;библиотеки javascript&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Prototype&lt;/span&gt; &lt;a href=&quot;http://www.prototypejs.org/&quot;&gt;http://www.prototypejs.org&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;script.aculo.us&lt;/span&gt; &lt;a href=&quot;http://script.aculo.us/&quot;&gt;http://script.aculo.us&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Yahoo! User Interface Library&lt;/span&gt; &lt;a href=&quot;http://developer.yahoo.com/yui&quot;&gt; http://developer.yahoo.com/yui&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Dojo&lt;/span&gt; &lt;a href=&quot;http://dojotoolkit.org/&quot;&gt;http://dojotoolkit.org&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;jQuery&lt;/span&gt; &lt;a href=&quot;http://jquery.com/&quot;&gt;http://jquery.com&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;MooTools&lt;/span&gt; &lt;a href=&quot;http://mootools.net/&quot;&gt;http://mootools.net&lt;/a&gt;</description><link>http://prostojavascript.blogspot.com/2009/11/1-web.html</link><author>noreply@blogger.com (Sergey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz5vo5dT1AwrLB0kvKgSmzQ2nZf6u9ehHMV7Io7wS6EIKyyC2FsGcKB2gojZeK-sncFA3s6djUpukbzwdQ-8dG8gcXWXeK-Ei7kIySpthHJ3PRD4zRKPAdLhyphenhyphen3Gp51HUunaRoP9Gy8affe/s72-c/The+Three+Layers+of+the+Web.png" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>