PageSourceSearch

https://jquerybook.ru/articles/kak-podklyuchit-jquery.html

html jquerybook.ru collected 2026-10-07 22:30:39 UTC 58,791 bytes, 514 lines download raw bytes

1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html lang="ru" xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta name="viewport" content="width=device-width, initial-scale=1" />
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<title>Как подключить jQuery к сайту: CDN, npm, WordPress (2026)</title>
7<meta name="description" content="Пошагово: подключение jQuery 4.0 и 3.7.1 через CDN, локальный файл и npm, в WordPress; как проверить загрузку и исправить ошибку $ is not defined." />
8<link rel="icon" href="/jqbook.ico" type="image/x-icon" />
9<link rel="shortcut icon" href="/jqbook.ico" type="image/x-icon" />
10<link href="/style.css" rel="stylesheet" type="text/css" />
11<link rel="canonical" href="https://jquerybook.ru/articles/kak-podklyuchit-jquery.html" />
12<link rel="stylesheet" href="/assets/restore.css?v=1" />
13<link rel="stylesheet" href="/assets/articles.css?v=1" />
14<meta property="og:type" content="article" />
15<meta property="og:locale" content="ru_RU" />
16<meta property="og:site_name" content="jQueryBook.ru" />
17<meta property="og:title" content="Как подключить jQuery к сайту: CDN, npm, WordPress (2026)" />
18<meta property="og:description" content="Пошагово: подключение jQuery 4.0 и 3.7.1 через CDN, локальный файл и npm, в WordPress; как проверить загрузку и исправить ошибку $ is not defined." />
19<meta property="og:url" content="https://jquerybook.ru/articles/kak-podklyuchit-jquery.html" />
20<script type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle","headline":"Как подключить jQuery: CDN, локальный файл, npm и WordPress","description":"Пошагово: подключение jQuery 4.0 и 3.7.1 через CDN, локальный файл и npm, в WordPress; как проверить загрузку и исправить ошибку $ is not defined.","inLanguage":"ru","datePublished":"2026-09-26","dateModified":"2026-09-26","mainEntityOfPage":"https://jquerybook.ru/articles/kak-podklyuchit-jquery.html","author":{"@type":"Organization","name":"jQueryBook.ru","url":"https://jquerybook.ru/"},"publisher":{"@type":"Organization","name":"jQueryBook.ru","url":"https://jquerybook.ru/"}}</script>
vendor: 1 bytes, line 20
20
21<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Главная","item":"https://jquerybook.ru/"},{"@type":"ListItem","position":2,"name":"Статьи","item":"https://jquerybook.ru/articles/"},{"@type":"ListItem","position":3,"name":"Подключение jQuery","item":"https://jquerybook.ru/articles/kak-podklyuchit-jquery.html"}]}</script>
vendor: 1 bytes, line 21
21
22<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Куда вставлять подключение jQuery — в head или перед \u003c/body>?","acceptedAnswer":{"@type":"Answer","text":"Оба варианта рабочие. Тег в конце \u003cbody> (перед вашими скриптами) не блокирует отрисовку страницы и остаётся самым предсказуемым вариантом. Тег в \u003chead> с атрибутом defer даёт тот же эффект: скрипт грузится параллельно с HTML и выполняется перед DOMContentLoaded, сохраняя порядок относительно других defer-скриптов. Не ставьте jQuery в \u003chead> без defer и без async — тогда браузер остановит разбор HTML, пока не скачает и не выполнит файл."}},{"@type":"Question","name":"Можно ли подключить две версии jQuery на одной странице?","acceptedA
22nswer":{"@type":"Answer","text":"Технически да, но вторая версия перезапишет window.$ и window.jQuery, и плагины, привязанные к первой версии, могут сломаться. Если это неизбежно (например, тема и плагин тянут разные версии), сразу после первой загрузки сохраните её через var jQuery1 = jQuery.noConflict(true);, а второй версии оставьте глобальные имена. Правильнее — привести все части сайта к одной версии."}},{"@type":"Question","name":"Чем slim-сборка отличается от обычной?","acceptedAnswer":{"@type":"Answer","text":"В slim-сборке нет модулей Ajax и эффектов (.animate(), .fadeIn() и т. п.) в любой ветке. В jQuery 4.0 slim дополнительно лишена модулей Deferred, Callbacks и Queue, на которых эти функции основаны. Если сайт использует только выборку и манипуляции с DOM (.addClass(), .attr(), .on()), slim выйдет заметно легче обычной сборки; если нужны $.ajax() или анимации — берите полную версию."}},{"@type":"Question","name":"Нужно ли подключать jQuery для Bootstrap 5?","acceptedA
22nswer":{"@type":"Answer","text":"Нет. Начиная с 5-й версии Bootstrap переписал JS-компоненты на чистый JavaScript и не требует jQuery для выпадающих меню, модальных окон, тултипов и остального. jQuery нужен только для Bootstrap 4 и более старых версий. Если на сайте Bootstrap 5 и jQuery всё равно подключён — это, скорее всего, наследие темы или отдельного плагина, а не требование самого Bootstrap."}},{"@type":"Question","name":"Как узнать версию jQuery на сайте?","acceptedAnswer":{"@type":"Answer","text":"Откройте консоль разработчика (F12) на нужной странице и выполните jQuery.fn.jquery — вернётся строка вида \"4.0.0\". Если jQuery не подключён, команда вызовет ошибку jQuery is not defined. Также версию видно во вкладке Network: у файла с CDN обычно есть номер версии прямо в имени, например jquery-3.7.1.min.js."}},{"@type":"Question","name":"Почему $ не работает в WordPress, хотя jQuery подключён?","acceptedA
22nswer":{"@type":"Answer","text":"Ядро WordPress подключает jQuery в noConflict-режиме, чтобы не конфликтовать с другими библиотеками в теме и плагинах, поэтому короткий алиас $ глобально недоступен — работает только jQuery. Внутри своего кода алиас можно вернуть локально: оберните код в jQuery(function($){ /* тут $ снова работает */ }); — это стандартный и безопасный приём именно для WordPress."}}]}</script>
22
23</head>
24<body id="home">
25<!-- script type="text/javascript">$("body").css("display", "none");</script -->
26<div id="mainblocktop">
27<div id="top-panel">
28 <table width="100%" border="0" cellspacing="0" cellpadding="0">
29  <tr>
30   <td width="50%" align="left" valign="middle">
31    <p class="site-h">www.jQueryBook.ru <span> - jQuery документация</span></p>   </td>
32   <td width="25%" align="center" valign="middle">&nbsp;</td>
33   <td></td>
34  </tr>
35</table>
36</div>
37
38 
39<!--поиск-->
40<div id="g-search-outer">
41<div id="g-search">
42
43<!--form action="https://jquerybook.ru/api/google-search.php" id="cse-search-box">
44  <div>
45    <input type="hidden" name="cx" value="partner-pub-3545104957102155:a9jnjd93k4z" />
46    <input type="hidden" name="cof" value="FORID:10" />
47    <input type="hidden" name="ie" value="utf-8" />
48    <input type="text" name="q" size="60" />
49    <input type="submit" name="sa" value="&#x041f;&#x043e;&#x0438;&#x0441;&#x043a;" />
50  </div>
51</form>
52<script type="text/javascript" src="http://www.google.ru/cse/brand?form=cse-search-box&amp;lang=ru"></script--> 
53 
54</div> 
55</div> 
56<!--поиск-->
57
58</div>
59
60<div id="mainblockbody">
61 <table id="anch" width="100%" border="0" cellspacing="0" cellpadding="0">
62  <tr> 
63   <td colspan="3" align="center" valign="top"> 
64    <div id="body-top-fon">
65     <table width="100%" border="0" cellspacing="0" cellpadding="0">
66      <tr>
67       <td width="20%" align="center" valign="top"> 
68        <p style="width:220px; margin:0; padding:0;">&nbsp;</p>
69       </td>
70       <td>
71        <p id="breadcrumbs" align="left"><a href="/">Главная</a> » <a href="/articles/">Статьи</a> » Подключение jQuery</p>
72       </td>
73       <td width="20%" align="center" valign="top"> 
74        <p id="font-min-max" align="right">&nbsp;</p>
75       </td>
76      </tr>
77     </table>
78    </div> 
79   </td> 
80  </tr> 
81  <tr> 
82   <td width="20%" align="center" valign="top"> 
83     <div id="left-menu">
84     <p class="hleft">jQuery API <span class="normal em09 body_tmp">&nbsp;&nbsp; <span class="xlight">( <span id="api-ru">ru</span> | <span id="api-en">en</span> )</span></span> </p>
85     <ul id="api-menu">
86       <li><a href="/api/" title="Все по алфавиту" class="active"><!--<img src="/images/plus.gif" width="12" height="12" /> --><span>All</span></a>
87	     <ul id="menu-abc" style="display:none;">
88		   <li class="first">
89		     <a class="menu-abc" href="#abc-a.html" title="jQuery на букву A"><span>A</span></a>
90		     <a class="menu-abc" href="#abc-b.html" title="jQuery на букву B"><span>B</span></a>
91		     <a class="menu-abc" href="#abc-c.html" title="jQuery на букву C"><span>C</span></a>
92		     <a class="menu-abc" href="#abc-d.html" title="jQuery на букву D"><span>D</span></a>
93		     <a class="menu-abc" href="#abc-e.html" title="jQuery на букву E"><span>E</span></a>
94		     <a class="menu-abc" href="#abc-f.html" title="jQuery на букву F"><span>F</span></a>
95		     <a class="menu-abc" href="#abc-j.html" title="jQuery на букву J"><span>J</span></a>
96		     <a class="menu-abc" href="#abc-h.html" title="jQuery на букву H"><span>H</span></a>
97		     <a class="menu-abc" href="#abc-i.html" title="jQuery на букву I"><span>I</span></a>
98		     <a class="menu-abc" href="#abc-j.html" title="jQuery на букву J"><span>J</span></a>
99		     <a class="menu-abc" href="#abc-k.html" title="jQuery на букву K"><span>K</span></a>
100		     <span title="jQuery на букву L">L</span>
101		     <span title="jQuery на букву M">M</span>
102		     <span title="jQuery на букву N">N</span>
103		     <span title="jQuery на букву O">O</span>
104		     <span title="jQuery на букву P">P</span>
105		     <span title="jQuery на букву Q">Q</span>
106		     <span title="jQuery на букву R">R</span>
107		     <span title="jQuery на букву S">S</span>
108		     <span title="jQuery на букву T">T</span>
109		     <span title="jQuery на букву U">U</span>
110		     <span title="jQuery на букву V">V</span>
111		     <span title="jQuery на букву W">W</span>
112		     <span title="jQuery на букву X">X</span>
113		     <span title="jQuery на букву Y">Y</span>
114		     <span title="jQuery на букву Z">Z</span>
115		     <div class="clear"></div>
116		   </li>
117		 </ul>
118	   </li>
119       <li><a href="/api/Ajax-c2.html" title="Ajax запросы" class="dropdown"><img src="/images/plus.gif" width="12" height="12" /> <span>Ajax</span></a>
120        <ul>
121         <li class="first"><a href="/api/Global-Ajax-Event-Handlers-c20.html" title="Обработчики глобальных Ajax событий"><span>Global Ajax Event Handlers</span></a></li>
122         <li><a href="/api/Helper-Functions-c21.html" title="Вспомогательные функции"><span>Helper Functions</span></a></li>
123         <li><a href="/api/Low-Level-Interface-c22.html" title="Низкоуровневые (базовые)"><span>Low-Level Interface</span></a></li>
124         <li><a href="/api/Shorthand-Methods-c23.html" title="Короткие (сокращенные)"><span>Shorthand Methods</span></a></li>
125        </ul></li>
126       <li><a href="/api/Attributes-c3.html" title="Атрибуты"><span>Attributes</span></a></li>
127       <li><a href="/api/Core-c4.html" title="Ядро"><span>Core</span></a></li>
128       <li><a href="/api/CSS-c5.html" title="CSS"><span>CSS</span></a></li>
129       <li><a href="/api/Data-c6.html" title="Данные"><span>Data</span></a></li>
130       <li><a href="/api/Dimensions-c7.html" title="Размеры"><span>Dimensions</span></a></li>
131       <li><a href="/api/Effects-c8.html" title="Эффекты" class="dropdown"><img src="/images/plus.gif" width="12" height="12" /> <span>Effects</span></a>
132        <ul>
133         <li class="first"><a href="/api/Basics-c24.html" title="Основные (базовые)"><span>Basics</span></a></li>
134         <li><a href="/api/Custom-c25.html" title="Собственные (пользовательские)"><span>Custom</span></a></li>
135         <li><a href="/api/Fading-c26.html" title="Непрозрачность (растворение, проявление)"><span>Fading</span></a></li>
136         <li><a href="/api/Sliding-c27.html" title="Скольжение (закатывание, выкатывание)"><span>Sliding</span></a></li>
137        </ul></li>
138       <li><a href="/api/Events-c9.html" title="События" class="dropdown"><img src="/images/plus.gif" width="12" height="12" /> <span>Events</span></a>
139        <ul>
140         <li class="first"><a href="/api/Browser-Events-c28.html" title="Браузерные события"><span>Browser Events</span></a></li>
141         <li><a href="/api/Document-Loading-c29.html" title="Загрузка документа"><span>Document Loading</span></a></li>
142         <li><a href="/api/Event-Handler-Attachment-c30.html" title="Обработчики событий"><span>Event Handler Attachment</span></a></li>
143         <li><a href="/api/Event-Object-c31.html" title="Экземпляр объекта Event"><span>Event Object</span></a></li>
144         <li><a href="/api/Form-Events-c32.html" title="События (элементы форм)"><span>Form Events</span></a></li>
145         <li><a href="/api/Keyboard-Events-c33.html" title="События (клавиатура)"><span>Keyboard Events</span></a></li>
146         <li><a href="/api/Mouse-Events-c34.html" title="События (указатель мыши)"><span>Mouse Events</span></a></li>
147        </ul></li>
148       <li><a href="/api/Forms-c10.html" title="Формы"><span>Forms</span></a></li>
149       <li><a href="/api/Manipulation-c11.html" title="Манипуляции" class="dropdown"><img src="/images/plus.gif" width="12" height="12" /> <span>Manipulation</span></a>
150        <ul>
151         <li class="first"><a href="/api/Class-Attributes-c35.html" title="Атрибуты классов"><span>Class Attributes</span></a></li>
152         <li><a href="/api/Copying-c36.html" title="Копирование"><span>Copying</span></a></li>
153         <li><a href="/api/DOM-Insertion-Around-c37.html" title="Вставка в DOM (обертывание вокруг)"><span>DOM Insertion, Around</span></a></li>
154         <li><a href="/api/DOM-Insertion-Inside-c38.html" title="Вставка в DOM (внутри элемента)"><span>DOM Insertion, Inside</span></a></li>
155         <li><a href="/api/DOM-Insertion-Outside-c39.html" title="Вставка в DOM (снаружи элемента)"><span>DOM Insertion, Outside</span></a></li>
156         <li><a href="/api/DOM-Removal-c40.html" title="Удаление из DOM"><span>DOM Removal</span></a></li>
157         <li><a href="/api/DOM-Replacement-c41.html" title="Замена в DOM"><span>DOM Replacement</span></a></li>
158         <li><a href="/api/General-Attributes-c42.html" title="Атрибуты DOM элементов"><span>General Attributes</span></a></li>
159         <li><a href="/api/Style-Properties-c43.html" title="Свойства стиля (CSS)"><span>Style Properties</span></a></li>
160        </ul></li>
161       <li><a href="/api/Miscellaneous-c12.html" title="Разное" class="dropdown"><img src="/images/plus.gif" width="12" height="12" /> <span>Miscellaneous</span></a>
162        <ul>
163         <li class="first"><a href="/api/Collection-Manipulation-c44.html" title="Манипуляции над множеством"><span>Collection Manipulation</span></a></li>
164         <li><a href="/api/Data-Storage-c45.html" title="Хранилище данных при элементе"><span>Data Storage</span></a></li>
165         <li><a href="/api/DOM-Element-Methods-c46.html" title="Спецметоды для DOM элементов"><span>DOM Element Methods</span></a></li>
166         <li><a href="/api/Setup-Methods-c47.html" title="Системные методы"><span>Setup Methods</span></a></li>
167        </ul></li>
168       <li><a href="/api/Offset-c13.html" title="Позиционирование"><span>Offset</span></a></li>
169       <li><a href="/api/Plugin-Authoring-c14.html" title="Разработка плагинов"><span>Plugin Authoring</span></a></li>
170       <li><a href="/api/Properties-c15.html" title="Свойства" class="dropdown"><img src="/images/plus.gif" width="12" height="12" /> <span>Properties</span></a>
171        <ul>
172         <li class="first"><a href="/api/Properties-of-jQuery-Object-Instances-c48.html" title="Свойства экземпляра объекта jQuery"><span>Properties of jQuery Object Instances</span></a></li>
173         <li>
173<a href="/api/Properties-of-the-Global-jQuery-Object-c49.html" title="Свойства глобального объекта jQuery"><span>Properties of the Global jQuery Object</span></a></li>
174        </ul></li>
175       <li><a href="/api/Selectors-c16.html" title="Селекторы" class="dropdown"><img src="/images/plus.gif" width="12" height="12" /> <span>Selectors</span></a>
176        <ul>
177         <li class="first"><a href="/api/Attribute-c50.html" title="Атрибуты"><span>Attribute</span></a></li>
178         <li><a href="/api/Basics-c51.html" title="Базовые"><span>Basics</span></a></li>
179         <li><a href="/api/Basics-Filter-c52.html" title="Основные фильтры"><span>Basics Filter</span></a></li>
180         <li><a href="/api/Child-Filter-c53.html" title="Фильтры потомков"><span>Child Filter</span></a></li>
181         <li><a href="/api/Content-Filter-c54.html" title="Фильтры содержимого"><span>Content Filter</span></a></li>
182         <li><a href="/api/Form-c55.html" title="Формы"><span>Form</span></a></li>
183         <li><a href="/api/Hierarchy-c56.html" title="Иерархические"><span>Hierarchy</span></a></li>
184         <li><a href="/api/Visibility-Filter-c57.html" title="Фильтры видимости"><span>Visibility Filter</span></a></li>
185        </ul></li>
186       <li><a href="/api/Traversing-c17.html" title="Обход, поиск" class="dropdown"><img src="/images/plus.gif" width="12" height="12" /> <span>Traversing</span></a>
187        <ul>
188         <li class="first"><a href="/api/Filtering-c58.html" title="Фильтрация"><span>Filtering</span></a></li>
189         <li><a href="/api/Miscellaneous-Traversing-c59.html" title="Обход, поиск (прочее)"><span>Miscellaneous Traversing</span></a></li>
190         <li><a href="/api/Tree-Traversal-c60.html" title="Обход, поиск (дерево DOM)"><span>Tree Traversal</span></a></li>
191        </ul></li>
192       <li><a href="/api/Utilities-c18.html" title="Утилиты"><span>Utilities</span></a></li>
193       <li><a href="/api/Version-c19.html" title="Версии jQuery" class="dropdown"><img src="/images/plus.gif" width="12" height="12" /> <span>Version jQuery JS</span></a>
194        <ul>
195         <li class="first"><a href="#" title="Версия jQuery 1.0"><span>jQuery 1.0</span></a></li>
196         <li><a href="#" title="Версия jQuery 1.0.4"><span>jQuery 1.0.4</span></a></li>
197         <li><a href="#" title="Версия jQuery 1.1"><span>jQuery 1.1</span></a></li>
198         <li><a href="#" title="Версия jQuery 1.1.2"><span>jQuery 1.1.2</span></a></li>
199         <li><a href="#" title="Версия jQuery 1.1.3"><span>jQuery 1.1.3</span></a></li>
200         <li><a href="#" title="Версия jQuery 1.1.4"><span>jQuery 1.1.4</span></a></li>
201         <li><a href="#" title="Версия jQuery 1.2"><span>jQuery 1.2</span></a></li>
202         <li><a href="#" title="Версия jQuery 1.2.3"><span>jQuery 1.2.3</span></a></li>
203         <li><a href="#" title="Версия jQuery 1.2.6"><span>jQuery 1.2.6</span></a></li>
204         <li><a href="#" title="Версия jQuery 1.3"><span>jQuery 1.3</span></a></li>
205         <li><a href="#" title="Версия jQuery 1.4"><span>jQuery 1.4</span></a></li>
206         <li><a href="#" title="Версия jQuery 1.4.1"><span>jQuery 1.4.1</span></a></li>
207         <li><a href="#" title="Версия jQuery 1.4.2"><span>
207jQuery 1.4.2</span></a></li>
208        </ul></li>
209      </ul>      
210      <br />
211<div style="padding-left:20px;"><div class="art-side"><p class="art-side-h"><a href="/articles/">Статьи о jQuery</a></p><ul><li><a href="/articles/jquery-4.html">jQuery 4.0: что нового</a></li><li><b>Как подключить jQuery</b></li><li><a href="/articles/jquery-vs-javascript.html">jQuery или чистый JS</a></li><li><a href="/articles/sobytiya-jquery-on.html">События: .on() и .off()</a></li><li><a href="/articles/ajax-jquery.html">Ajax: $.ajax и формы</a></li><li><a href="/articles/selektory-jquery.html">Селекторы: шпаргалка</a></li><li><a href="/articles/formy-jquery.html">Формы: val, checked, select</a></li><li><a href="/articles/ustarevshie-metody-jquery.html">Устаревшие методы jQuery</a></li></ul></div>	  
212
213</div>	  
214      <br />
215      <br />
216      <br />
217      <br />
218      <br />
219      <br />
220      <br />
221      <br />
222      <br />
223      <br />
224      <br />
225      <br />
226      <br />
227      <br />
228     </div> 
229   </td> 
230   <td align="center" valign="top"> 
231     <div id="blockcontent">
232      <p class="hbody">&nbsp;</p>
233      <div id="blockcontent-inner"> 
234<!--  @apalekhov Начало статьи (перед контентом) -->
235<br><div class="rl_cnt_bg" data-id="289505"></div><br>
236
237<!--начало вставки-->
238<div class="article">
239<h1 class="art-h1">Как подключить jQuery: CDN, локальный файл, npm и WordPress</h1>
240<p class="art-meta">Опубликовано: 26.09.2026 · Обновлено: 26.09.2026 · Актуально для jQuery 3.7.1 и 4.0.0</p>
241<p class="art-lead">Самый быстрый способ подключить jQuery — вставить один тег <code>&lt;script src="https://code.jquery.com/jquery-4.0.0.min.js"&gt;&lt;/script&gt;</code> перед своим кодом: библиотека загрузится с официального CDN, и <code>$</code> станет доступен на странице. Дальше — варианты для локального файла, npm-проектов и WordPress, а также разбор ошибки <code>$ is not defined</code> и других типичных проблем подключения.</p>
242<div class="art-toc">
243<p>Содержание</p>
244<ol>
245<li><a href="#version">Какую версию выбрать</a></li>
246<li><a href="#cdn">Подключение с CDN</a></li>
247<li><a href="#local">Локальный файл</a></li>
248<li><a href="#npm">npm и сборщики</a></li>
249<li><a href="#wordpress">jQuery в WordPress</a></li>
250<li><a href="#check">Проверка, что jQuery загрузился</a></li>
251<li><a href="#ready">Готовность DOM</a></li>
252<li><a href="#errors">Частые ошибки</a></li>
253<li><a href="#checklist">Чек-лист</a></li>
254</ol>
255</div>
256
257<h2 id="version">Какую версию выбрать</h2>
258<p>На сентябрь 2026 года актуальны две ветки: <strong>jQuery 4.0.0</strong> — основная линия разработки, и <strong>jQuery 3.7.1</strong> — последний релиз ветки 3.x, которую многие держат из-за более широкой совместимости со старыми плагинами. Разница между ними в первую очередь в удалённых устаревших API (подробности — в статье <a href="/articles/jquery-4.html">что нового в jQuery 4.0</a>), а не в наборе базовых возможностей, поэтому для нового проекта без старых плагинов разумно сразу брать 4.0.0.</p>
259<p>У каждой версии есть полная сборка и облегчённая <strong>slim</strong>. Slim не включает Ajax и эффекты, а в 4.0 из неё дополнительно убрали модули Deferred, Callbacks и Queue, на которых эти функции построены. Если сайт использует jQuery только для выборки элементов и работы с DOM — берите slim, файл будет заметно легче.</p>
260<div class="art-table-wrap"><table class="art-table">
261<thead>
262<tr><th>Сборка</th><th>Что внутри</th><th>Когда брать</th></tr>
263</thead>
264<tbody>
265<tr><td>jquery-4.0.0.min.js</td><td>
265Полный набор: DOM, события, Ajax, эффекты, Deferred</td><td>Нужны <code>$.ajax()</code>, <code>.animate()</code>, старые плагины на Deferred</td></tr>
266<tr><td>jquery-4.0.0.slim.min.js</td><td>Без Ajax, эффектов, Deferred/Callbacks/Queue</td><td>Только выборка и манипуляции с DOM, современный код без jQuery-плагинов на Deferred</td></tr>
267<tr><td>jquery-3.7.1.min.js</td><td>Полный набор, как в 4.0, но с сохранёнными устаревшими API</td><td>Старые плагины и код, ещё не проверенные на совместимость с 4.0</td></tr>
268<tr><td>jquery-3.7.1.slim.min.js</td><td>Без Ajax и эффектов (Deferred/Callbacks остаются)</td><td>То же, что и slim 4.0, но нужна совместимость с 3.x-плагинами</td></tr>
269</tbody>
270</table></div>
271<div class="art-note"><p>Если на сайте много старых плагинов, не проверяйте совместимость с 4.0 «на глаз» — сначала прогоните через jQuery Migrate в тестовом окружении и посмотрите предупреждения в консоли, а уже потом переключайте прод.</p></div>
272
273<h2 id="cdn">Подключение с CDN</h2>
274<p>Проще всего вставить готовый тег <code>&lt;script&gt;</code> с одного из CDN. Официальный вариант — <strong>code.jquery.com</strong>, у него всегда актуальные файлы и есть теги с готовым SRI-хэшем на странице <a href="https://releases.jquery.com/">releases.jquery.com</a>. Также jQuery зеркалируют cdnjs и jsDelivr — они бывают полезны, если основной CDN недоступен.</p>
275<div class="art-table-wrap"><table class="art-table">
276<thead>
277<tr><th>CDN</th><th>URL для jQuery 4.0.0</th><th>URL для jQuery 3.7.1</th></tr>
278</thead>
279<tbody>
280<tr><td>code.jquery.com (официальный)</td><td><code>https://code.jquery.com/jquery-4.0.0.min.js</code></td><td><code>https://code.jquery.com/jquery-3.7.1.min.js</code></td></tr>
281<tr><td>cdnjs</td><td><code>https://cdnjs.cloudflare.com/ajax/libs/jquery/4.0.0/jquery.min.js</code></td><td><code>https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js</code></td></tr>
282<tr><td>jsDelivr</td><td><code>https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js</code></td><td><code>https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js</code></td></tr>
283</tbody>
284</table></div>
285<p>Пример подключения с официального CDN:</p>
286<pre><code>&lt;script src="https://code.jquery.com/jquery-4.0.0.min.js"&gt;&lt;/script&gt;
287&lt;script&gt;
288  // ваш код, использующий $, идёт ниже
289&lt;/script&gt;</code></pre>
290<p>У тега со страницы releases.jquery.com есть ещё два атрибута — <code>integrity</code> и <code>crossorigin="anonymous"</code>. Это механизм Subresource Integrity (SRI): браузер сверяет хэш скачанного файла с указанным в атрибуте и откажется выполнять скрипт, если файл был подменён на CDN или по пути к нему. Хэш привязан к конкретной версии файла, поэтому его Ð
290½ÐµÐ»ÑŒÐ·Ñ придумать или взять «примерно такой же» — берите его только с официальной страницы для нужной версии:</p>
291<pre><code>&lt;!-- jQuery 4.0.0, минифицированная полная сборка --&gt;
292&lt;script src="https://code.jquery.com/jquery-4.0.0.min.js"
293  integrity="sha256-OaVG6prZf4v69dPg6PhVattBXkcOWQB62pdZ3ORyrao="
294  crossorigin="anonymous"&gt;&lt;/script&gt;
295
296&lt;!-- jQuery 3.7.1, минифицированная полная сборка --&gt;
297&lt;script src="https://code.jquery.com/jquery-3.7.1.min.js"
298  integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
299  crossorigin="anonymous"&gt;&lt;/script&gt;</code></pre>
300<div class="art-note"><p>Хэш относится к конкретному файлу: у <code>jquery-4.0.0.js</code>, <code>jquery-4.0.0.slim.min.js</code> и других сборок он свой. Для другой версии или сборки копируйте готовый тег на <a href="https://releases.jquery.com/">releases.jquery.com</a> — не правьте номер версии в адресе, оставив старый <code>integrity</code>: браузер тогда просто не выполнит скрипт. Тот же файл на jsDelivr (<code>npm/[email protected]/dist/jquery.min.js</code>) имеет тот же хэш.</p></div>
301<p>Отдельно про <strong>Google Hosted Libraries</strong> (<code>ajax.googleapis.com</code>): этот CDN исторически был самым популярным способом подключить jQuery и до сих пор встречается в старых шаблонах, но новые версии появляются там с задержкой. Прежде чем прописывать адрес с 4.0, проверьте наличие нужной версии в каталоге <a href="https://developers.google.com/speed/libraries">developers.google.com/speed/libraries</a>; надёжнее брать 4.0 с code.jquery.com, cdnjs или jsDelivr.</p>
302<p>Для аудитории из РФ имеет смысл держать в запасе локальную копию файла: доступность зарубежных CDN у части провайдеров и клиентских сетей может быть нестабильной, и сайт не должен разваливаться из-за того, что не загрузился один внешний скрипт. Ниже — рабочий вариант с фолбэком на локальный файл.</p>
303
304<h2 id="local">Локальный файл</h2>
305<p>Скачайте нужный файл (например, <code>jquery-4.0.0.min.js</code> с code.jquery.com) и положите в папку со статикой сайта, например <code>/js/</code>. Дальше подключите тегом с относительным путём:</p>
306<pre><code>&lt;script src="/js/jquery-4.0.0.min.js"&gt;&lt;/script&gt;
307&lt;script src="/js/my-plugin.js"&gt;&lt;/script&gt;
308&lt;script src="/js/app.js"&gt;&lt;/script&gt;</code></pre>
309<p>Порядок важен: сначала jQuery, затем плагины, которые от неё зависят, и только потом ваш код, использующий и jQuery, и эти плагины. Каждый скрипт без <code>async</code>/<code>defer</code> выполняется сразу после загрузки и блокирует разбор страницы до этого момента — поэтому такие теги обычно ставят в самом конце <code>&lt;body&gt;</code>. Если хотите держать все скрипты в <code>&lt;head&gt;</code>, добавьте всем трём тегам атрибут <code>defer</code> — браузер сохранит порядок выполнения между ними и не остановит отрисовку страницы.</p>
310<p>Частый сценарий — грузить jQuery с CDN, а при сбое подключать локальную копию. Классический вариант проверки:</p>
311<pre><code>&lt;script src="https://code.jquery.com/jquery-4.0.0.min.js"&gt;&lt;/script&gt;
312&lt;script&gt;
313  window.jQuery || document.write('&lt;script src="/js/jquery-4.0.0.min.js"&gt;\x3C/script&gt;');
314&lt;/script&gt;</code></pre>
315<p><code>document.write()</code> здесь безопасен только потому, что оба тега синхронные, без <code>async</code>/<code>defer</code>: страница ещё не дочитана, и метод успевает дописать HTML в поток разбора. В остальных случаях приём считается устаревшим: из асинхронных скриптов он не работает, а Chrome на медленных соединениях может не загружать вставленные через него скрипты со сторонних доменов. Вариант без <code>document.write()</code> — динамически создать тег скрипта и продолжить инициализацию в обработчике загрузки:</p>
316<pre><code>&lt;script src="https://code.jquery.com/jquery-4.0.0.min.js"&gt;&lt;/script&gt;
317&lt;script&gt;
318(function () {
319  if (window.jQuery) return; // CDN отработал, ничего делать не нужно
320
321  var script = document.createElement('script');
322  script.src = '/js/jquery-4.0.0.min.js';
323  script.onload = function () {
324    jQuery(function ($) {
325      // код, зависящий от jQuery, безопасно вызывать здесь
326    });
327  };
328  document.head.appendChild(script);
329})();
330&lt;/script&gt;</code></pre>
331<p>Минус — код, зависящий от jQuery, приходится держать внутри <code>onload</code>, а не отдельным тегом ниже. Для одностраничников это обычно не проблема.</p>
332
333<h2 id="npm">npm и сборщики</h2>
334<p>В проекте со сборщиком (Vite, webpack) jQuery ставится как обычная npm-зависимость:</p>
335<pre><code>npm install jquery</code></pre>
336<p>и импортируется как ES-модуль:</p>
337<pre><code>import $ from "jquery";
338
339$(function () {
340  $("#app").addClass("ready");
341});</code></pre>
342<p>Проблема возникает со старыми плагинами, которые ожидают <code>$</code> и <code>jQuery</code>
342 как глобальные переменные, а не как импортированный модуль. В webpack это решается через <code>ProvidePlugin</code> — он подставляет импорт автоматически там, где встречает <code>$</code> или <code>jQuery</code> без объявления:</p>
343<pre><code>// webpack.config.js
344const webpack = require("webpack");
345
346module.exports = {
347  // ...
348  plugins: [
349    new webpack.ProvidePlugin({
350      $: "jquery",
351      jQuery: "jquery",
352    }),
353  ],
354};</code></pre>
355<p>В Vite такого готового плагина из коробки нет, но глобальные алиасы можно выставить руками. Важно: инструкции <code>import</code> всплывают и выполняются раньше остального кода модуля, поэтому присваивание <code>window.jQuery</code> нужно вынести в отдельный модуль и импортировать его первым:</p>
356<pre><code>// jquery-global.js
357import $ from "jquery";
358window.$ = window.jQuery = $;
359export default $;
360
361// main.js — порядок импортов = порядок выполнения
362import $ from "./jquery-global.js";
363import "./legacy-plugin.js"; // теперь плагин найдёт window.jQuery</code></pre>
364<p>Если написать присваивание прямо в <code>main.js</code> между двумя <code>import</code>, плагин выполнится раньше него и не найдёт <code>jQuery</code>.</p>
365<p>Для окружений без браузера — Node.js с jsdom, серверный рендеринг, тесты — способ подключения в jQuery 4.0 изменился. В 3.x было достаточно <code>require("jquery")(window)</code>, и библиотека сама возвращала фабричную функцию, если не находила глобальный <code>window</code>. В 4.0 эта неявная фабрика убрана из основного модуля: нужный вход — <code>jquery/factory</code> (или <code>jquery/factory-slim</code> для slim-сборки):</p>
366<pre><code>// jQuery 4.0
367const { JSDOM } = require("jsdom");
368const { window } = new JSDOM("");
369const $ = require("jquery/factory")(window);</code></pre>
370<p>Если после перехода на 4.0 такой код перестал работать, это первое место для проверки.</p>
371
372<h2 id="wordpress">jQuery в WordPress</h2>
373<p>WordPress поставляет jQuery в комплекте с ядром — отдельно подключать библиотеку с CDN для тем и плагинов не нужно и обычно не стоит. Правильный способ добавить свой скрипт, зависящий от jQuery, — зарегистрировать зависимость через <code>wp_enqueue_script()</code>, а не вставлять тег <code>&lt;script&gt;</code> напрямую в шаблон:</p>
374<pre><code>function my_theme_scripts() {
375    wp_enqueue_script(
376        'my-theme-script',
377        get_template_directory_uri() . '/js/my-script.js',
378        array( 'jquery' ), // зависимость — WordPress сам подключит jQuery раньше
379        '1.0.0',
380        true // грузить в подвале страницы
381    );
382}
383add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );</code></pre>
384<p>Так WordPress гарантирует, что jQuery окажется на странице раньше вашего скрипта, даже если её уже подключает тема или другой плагин — дубликатов не будет.</p>
385<p>Важная особенность: ядро WordPress подключает jQuery в режиме <code>noConflict</code>, чтобы не спорить за символ <code>$</code> с другими библиотеками в теме. Из-за этого глобаÐ
385»ÑŒÐ½Ñ‹Ð¹ алиас <code>$</code> в WordPress не работает — доступен только <code>jQuery</code>. Стандартный обходной приём — обернуть код в функцию и вернуть короткий алиас локально:</p>
386<pre><code>jQuery(function ($) {
387    // здесь $ снова означает jQuery, но только внутри этой функции
388    $('.my-block').addClass('is-ready');
389});</code></pre>
390<p>Не отключайте и не дерегистрируйте встроенный <code>jquery</code> без веской причины (например, замены на другую версию для конкретного плагина, который иначе не работает) — на нём завязана часть админки и многих плагинов, и без явной необходимости трогать эту зависимость не стоит.</p>
391
392<h2 id="check">Проверка, что jQuery загрузился</h2>
393<p>Откройте консоль разработчика (клавиша F12 или сочетание Ctrl+Shift+I) на нужной странице и введите:</p>
394<pre><code>typeof jQuery</code></pre>
395<p>Если возвращается <code>"function"</code> — библиотека загружена. Значение <code>"undefined"</code> означает, что скрипт не подключился или подключился с ошибкой. Узнать версию можно так:</p>
396<pre><code>jQuery.fn.jquery
397// вернёт строку вида "4.0.0"</code></pre>
398<p>Чтобы убедиться, что файл вообще запрашивался, откройте вкладку Network, перезагрузите страницу и найдите jquery в списке запросов — по столбцу Status видно, отдал ли сервер 200, 404 или редирект, а по Size — не пришёл ли вместо файла пустой ответ.</p>
399
400<h2 id="ready">Готовность DOM</h2>
401<p>Код, который ищет элементы на странице (<a href="/api/jQuery()-fn132.html">через функцию <code>jQuery()</code> / <code>$()</code></a>), должен запускаться только после того, как эти элементы появились в DOM. Стандартный способ — короткая форма:</p>
402<pre><code>$(function () {
403    // DOM готов, можно искать элементы и вешать обработчики
404});</code></pre>
405<p>Она эквивалентна более явной записи <code>$(document).ready(function () { ... })</code> — обе формы работают и сейчас, короткую просто удобнее читать. А вот привязка через <code>.on('ready', fn)</code>, которую иногда ещё встречают в старом коде, не годится: <code>ready</code> — это не обычное DOM-событие, и такой способ подписки на него не поддерживается уже много версий подряд. Используйте <code>$(fn)</code> или <code>$(document).ready(fn)</code>.</p>
406<p>Если jQuery на странице нужен только ради ожидания готовности DOM, а остальной код написан на чистом JavaScript, обычно достаточно нативного события:</p>
407<pre><code>document.addEventListener('DOMContentLoaded', function () {
408    // DOM готов, jQuery не нужен
409});</code></pre>
410<p>Похожий эффект даёт атрибут <code>defer</code> у обычного тега <code>&lt;script&gt;</code>: браузер откладывает выполнение скрипта до момента, близкого к <code>DOMContentLoaded</code>, без обёрток вида <code>$(document).ready()</code>. Подробнее о разнице между <code>.ready()</code> и обработчиками через <code>.on()</code> — в статье <a href="/articles/sobytiya-jquery-on.html">про события в jQuery</a>.</p>
411
412<h2 id="errors">Частые ошибки</h2>
413<div class="art-table-wrap"><table class="art-table">
414<thead>
415<tr><th>Симптом</th><th>Причина</th><th>Решение</th></tr>
416</thead>
417<tbody>
418<tr><td><code>$ is not defined</code></td><td>Ваш код выполняется раньше, чем подключился jQuery, либо тег с jQuery вообще отсутствует на странице</td><td>Проверьте порядок тегов: jQuery должен быть выше вашего скрипта; убедитесь через вкладку Network, что файл вообще загрузился</td></tr>
419<tr><td><code>jQuery is not defined</code></td><td>То же самое, но код обращается к полному имени, а не к алиасу <code>$</code></td><td>Та же проверка порядка подключения и факта загрузки файла</td></tr>
420<tr><td><code>$(...).plugin is not a function</code></td><td>Плагин подключён раньше самой jQuery, либо на странице загружены две версии jQuery и плагин прицепился не к той</td><td>Проверьте порядок тегов (jQuery → плагины → ваш код) и убедитесь, что тег с jQuery на странице один</td></tr>
421<tr><td>Код ломается непредсказуемо, часть плагинов «не видит» другие</td><td>На странице подключены две версии jQuery одновременно (например, одну тянет тема, другую — виджет)</td><td>Найдите оба тега <code>&lt;script&gt;</code> и оставьте один; если убрать нельзя — разведите версии через <code>jQuery.noConflict(true)</code></td></tr>
422<tr><td><code>$</code> занят — конфликт с другой библиотекой</td><td>Ещё одна библиотека тоже использует символ <code>$</code> (например, Prototype.js)</td><td>Вызовите <code>jQuery.noConflict();</code> после подключения jQuery и используйте полное имя <code>jQuery</code> вместо <code>$</code></td></tr>
423<tr><td>Скрипт с CDN не грузится, в консоли ошибка про mixed content</td><td>Страница открыта по https, а адрес CDN указан по http</td><td>Используйте протокол-независимый или явно https-адрес CDN (все актуальные CDN jQuery отдают https)</td></tr>
424<tr><td>Браузер блокирует скрипт с CDN, в консоли ошибка Content Security Policy</td><td>Заголовок CSP сайта не разрешает загрузку скриптов с домена CDN</td><td>Добавьте домен CDN (например, <code>code.jquery.com</code>) в директиву <code>script-src</code> вашей CSP-политики или разместите файл локально</td></tr>
425<tr><td>Код после CDN-скрипта иногда падает с <code>$ is not defined</code> только на медленной сети</td><td>Тегу с jQuery по ошибке добавлен <code>async</code>, из-за чего порядок выполнения относительно соседних скриптов не гарантирован</td><td>Уберите <code>async</code> у тега с jQuery либо переведите все зависимые скрипты на <code>defer</code>, который сохраняет порядок</td></tr>
426</tbody>
427</table></div>
428
429<h2 id="checklist">Чек-лист</h2>
430<ul>
431<li>Определились, нужна ли ветка 4.0.0 или 3.7.1, и обычная сборка или slim.</li>
432<li>Тег с jQuery стоит выше тегов с плагинами и вашим кодом (или у всех проставлен согласованный <code>defer</code>).</li>
433<li>Если используете CDN — рядом есть план на случай его Ð
433½ÐµÐ´Ð¾ÑÑ‚упности: локальный файл и фолбэк-проверка <code>window.jQuery</code>.</li>
434<li>Если используете <code>integrity</code>, хэш соответствует точной версии и сборке файла (скопирован с releases.jquery.com), а не остался от другой версии.</li>
435<li>В npm-проекте плагинам, ожидающим глобальные <code>$</code>/<code>jQuery</code>, явно проброшены глобальные переменные (через <code>ProvidePlugin</code> или ручное присваивание).</li>
436<li>В WordPress свой скрипт зарегистрирован через <code>wp_enqueue_script()</code> с зависимостью <code>jquery</code>, а не отдельным тегом в шаблоне.</li>
437<li>Код, ищущий элементы на странице, обёрнут в <code>$(function(){...})</code>, а не выполняется до готовности DOM.</li>
438<li>После подключения проверили в консоли <code>typeof jQuery</code> и <code>jQuery.fn.jquery</code>, а во вкладке Network — что файл действительно загрузился с кодом 200.</li>
439</ul>
440<p>Если jQuery на сайте не используется активно и подключён «по привычке» — возможно, часть задач вообще проще закрыть без него; сравнение вариантов — в статье <a href="/articles/jquery-vs-javascript.html">нужен ли jQuery, или хватит чистого JS</a>. А для более редких методов и устаревших свойств вроде <a href="/api/jQuery.browser-fn30.html"><code>jQuery.browser</code></a> или динамической подгрузки скриптов через <a href="/api/jQuery.getScript()-fn103.html"><code>jQuery.getScript()</code></a> держите под рукой <a href="/api/">справочник jQuery API</a>.</p>
441<h2 id="faq">Частые вопросы</h2>
442<div class="faq">
443<h3>Куда вставлять подключение jQuery — в head или перед &lt;/body&gt;?</h3>
444<p>Оба варианта рабочие. Тег в конце <code>&lt;body&gt;</code> (перед вашими скриптами) не блокирует отрисовку страницы и остаётся самым предсказуемым вариантом. Тег в <code>&lt;head&gt;</code> с атрибутом <code>defer</code> даёт тот же эффект: скрипт грузится параллельно с HTML и выполняется перед <code>DOMContentLoaded</code>, сохраняя порядок относительно других <code>defer</code>-скриптов. Не ставьте jQuery в <code>&lt;head&gt;</code> без <code>defer</code> и без <code>async</code> — тогда браузер остановит разбор HTML, пока не скачает и не выполнит файл.</p>
445<h3>Можно ли подключить две версии jQuery на одной странице?</h3>
446<p>Технически да, но вторая версия перезапишет <code>window.$</code> и <code>window.jQuery</code>, и плагины, привязанные к первой версии, могут сломаться. Если это неизбежно (например, тема и плагин тянут разные версии), сразу после первой загрузки сохраните её через <code>var jQuery1 = jQuery.noConflict(true);</code>, а второй версии оставьте глобальные имена. Правильнее — привести все части сайта к одной версии.</p>
447<h3>Чем slim-сборка отличается от обычной?</h3>
448<p>В slim-сборке нет модулей Ajax и эффектов (<code>.animate()</code>, <code>.fadeIn()</code> и т. п.) в любой ветке. В jQuery 4.0 slim дополнительно лишена модулей Deferred, Callbacks и Queue, на которых эти функции основаны. Если сайт использует только выборку и манипуляции с DOM (<code>.addClass()</code>, <code>.attr()</code>, <code>.on()</code>), slim выйдет заметно легче обычной сборки; если нужны <code>$.ajax()</code> или анимации — берите полную версию.</p>
449<h3>Нужно ли подключать jQuery для Bootstrap 5?</h3>
450<p>Нет. Начиная с 5-й версии Bootstrap переписал JS-компоненты на чистый JavaScript и не требует jQuery для выпадающих меню, модальных окон, туÐ
450»Ñ‚ипов и остального. jQuery нужен только для Bootstrap 4 и более старых версий. Если на сайте Bootstrap 5 и jQuery всё равно подключён — это, скорее всего, наследие темы или отдельного плагина, а не требование самого Bootstrap.</p>
451<h3>Как узнать версию jQuery на сайте?</h3>
452<p>Откройте консоль разработчика (F12) на нужной странице и выполните <code>jQuery.fn.jquery</code> — вернётся строка вида <code>"4.0.0"</code>. Если jQuery не подключён, команда вызовет ошибку <code>jQuery is not defined</code>. Также версию видно во вкладке Network: у файла с CDN обычно есть номер версии прямо в имени, например <code>jquery-3.7.1.min.js</code>.</p>
453<h3>Почему $ не работает в WordPress, хотя jQuery подключён?</h3>
454<p>Ядро WordPress подключает jQuery в noConflict-режиме, чтобы не конфликтовать с другими библиотеками в теме и плагинах, поэтому короткий алиас <code>$</code> глобально недоступен — работает только <code>jQuery</code>. Внутри своего кода алиас можно вернуть локально: оберните код в <code>jQuery(function($){ /* тут $ снова работает */ });</code> — это стандартный и безопасный приём именно для WordPress.</p>
455</div>
456<div class="art-more"><p class="art-more-h">Ещё по теме</p><ul><li><a href="/articles/jquery-4.html">jQuery 4.0: что нового и как перейти с версии 3.x</a></li><li><a href="/articles/jquery-vs-javascript.html">jQuery и чистый JavaScript: аналоги методов и когда jQuery ещё нужен</a></li><li><a href="/articles/sobytiya-jquery-on.html">События в jQuery: .on(), .off(), делегирование и объект event</a></li><li><a href="/articles/ajax-jquery.html">Ajax в jQuery: $.ajax, $.get, $.post и отправка форм без перезагрузки</a></li><li><a href="/articles/selektory-jquery.html">Селекторы jQuery: шпаргалка с примерами для jQuery 3.x и 4.0</a></li><li><a href="/articles/formy-jquery.html">Формы в jQuery: значения полей, чекбоксы, select и валидация</a></li><li><a href="/articles/ustarevshie-metody-jquery.html">Устаревшие и удалённые методы jQuery: что убрали в 1.9, 3.0 и 4.0 и чем заменить</a></li></ul></div>
457<p align="right"><a href="#anch">[ наверх ]</a></p>
458</div>
459<div id="pre-sub-center"></div>
460<!--  @apalekhov Конец статьи (после контента) -->
461<div class="rl_cnt_bg" data-id="289507"></div>
462	  
463
464	  <div style="float:right">
465
466	  </div>
467
468	  <div style="float:left">
469
470	  </div>
471	  
472     <br class="clear" /><!--конец вставки-->
473       <br class="clear" />
474       <br />
475       <br />
476       <br />
477       <br />
478       <br />
479       <br />
480      </div>
481     </div> 
482   </td> 
483   <td width="20%" align="center" valign="top"> 
484     <div id="right-menu" style="padding-top:20px;">
485	 <div style="display:inline-block;margin-left:6px;background-color:#FFFFFF;text-align:center;">
486
487
488
489</div>
490     <p class="hright">&nbsp;</p>
491<!--  @apalekhov Сайдбар -->
492<div class="rl_cnt_bg" data-id="289506"></div>
493     </div> 
494   </td> 
495  </tr> 
496</table>
497</div>
498<br />
499<br />
500<br />
501<table width="100%" border="0" cellspacing="5" cellpadding="0">
502  <tr>
503    <td width="50%" align="left" valign="bottom">
504
505    </td>
506    <td align="right" valign="bottom">
507     <p align="right" class="light noffset em08">Справочник по jQuery JavaScript API на русском языке</p>
508    </td>
509  </tr>
510</table>
511<div id="modal-init"></div>
512  
512<script src="/assets/runtime-player.js" defer></script>
512
513</body>
514</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.