Думаю, можно подавать 30 КБ за 3G, чтобы манипулировать парой элементов DOM? Конечно, вы этого не делаете, потому что это ход asshat, и вы не Asshat. Вместо этого вы, вероятно, будете использовать пару строк ванильного JavaScript, возможно, немного CSS :active с переходами, при этом ездит на безработецком единорога через двойную радугу, без рук.
Работаете над чем -то более сложным? В отличие от FAT, взрослых рамок и библиотек, Chibi фокусируется только на предметах первой необходимости, растопленной и смешанной с оптимизационными радугами, чтобы создать действительно легкую микро-библиотеку, которая позволяет вам делать удивительные вещи, без придурков.
document.querySelectorAll() ограничен поддержкой браузера CSS и не так быстро, как некоторые выделенные двигатели селектора. Это означает отсутствие input[type=text] или p:nth-child(even) селекторы с IE6. К счастью, современный браузер не нуждается в этом полифилле.window.getComputedStyle браузеры, которые не поддерживают ни document.querySelectorAll() .Версия 3 является основным обновлением со многими нарушающими изменениями. Если трудно принять изменения, версия 1 все еще доступна здесь.
Чиби был протестирован и поддерживает следующие браузеры:
Chibi также должен работать с любым другим браузером, который поддерживает document.querySelectorAll() .
Возьмите его отсюда или
npm install chibijs Синтаксис Chibi похож на то, что впервые заправлено JQUERY: $(selector).method() . Он намеренно использует то же пространство $ имен, что и JQuery, потому что микро-библиотеки и взрослые библиотеки никогда не должны смешиваться.
Чиби поддерживает стандартные селекторы CSS, но вы также можете напрямую передать элементы DOM:
$ ( "p" ) // Returns an array of all paragraph elements
$ ( "p" ) . hide ( ) // Hides all paragraphs
$ ( "#foo" ) . show ( ) // Shows element with id equal to "foo"
$ ( ".foo" ) . hide ( ) // Hides elements with "foo" CSS class $ ( document . getElementsByTagName ( 'p' ) ) . hide ( ) // Hides all paragraphs $ ( $ ( 'p' ) [ 0 ] ) . hide ( ) // Hides first paragraph Chibi поддерживает метод цепочки $(selector).method().anothermethod().evenmoremethods() любого метода, не возвращающего значение (строка, логическое и т. Д.).
Обработчик пожаров, когда DOM будет готов.
Используйте, чтобы выпустить функцию, когда DOM будет готов. Включение селектора не имеет смысла для этого метода, не делайте этого.
$ ( ) . ready ( function ( ) {
// Do awesome
} ) ;или, возможно,
function foo ( ) {
// Do awesome
}
$ ( ) . ready ( foo ) ; Обработчик пожаров при загрузке страницы.
Используйте, чтобы запустить функцию, когда страница загружена. Включение селектора не имеет смысла для этого метода, не делайте этого.
function foo ( ) {
// Do awesome
}
$ ( ) . loaded ( foo ) ; Выполняет функцию на каждом соответствующем элементе
Каждый проходит каждый соответствующий элемент по указанной функции.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
function foo ( elm ) {
elm . style . color = "red" ;
}
$ ( 'p' ) . each ( foo ) ; // Executes the foo function (sets the element style color to red) on all paragraph elements
// An alternative way to achieve the above
$ ( 'p' ) . each ( function ( elm ) {
$ ( elm ) . css ( 'color' , 'red' ) ;
} )
</ script >
</ body >
</ html > Находит первый соответствующий элемент.
Сначала вернет массив, содержащий первый соответствующий элемент, полезный при работе с дрящими браузерами, такими как IE6, со слабой поддержкой псевдо CSS, особенно в сочетании с цепочкой методов.
Находит последний соответствующий элемент.
Последнее вернет массив, содержащий последний соответствующий элемент.
Находит соответствующие нечетные элементы.
ODD вернет массив, содержащий соответствующие нечетные элементы.
Находит совпадающие даже элементы.
Даже вернет массив, содержащий соответствующие даже элементы.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< p > Foo </ p >
< p > Bar </ p >
< script >
$ ( 'p' ) . first ( ) ; // returns an array containing the first paragraph element
$ ( 'p' ) . last ( ) ; // returns an array containing the fourth paragraph element
$ ( 'p' ) . odd ( ) ; // returns an array of odd paragraph elements
$ ( 'p' ) . even ( ) ; // returns an array of even paragraph elements
</ script >
</ body >
</ html > Скрывает соответствующие элементы.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
$ ( 'p' ) . hide ( ) ; // hides all paragraph elements
</ script >
</ body >
</ html > Показывает соответствующие элементы.
<!DOCTYPE html >
< html >
< head >
< style >
p {display:none}
</ style >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
$ ( 'p' ) . show ( ) ; // shows all paragraph elements
</ script >
</ body >
</ html > Переключает видимость соответствующих элементов.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p style =" display:none " > Bar </ p >
< script >
$ ( 'p' ) . toggle ( ) ; // shows the second paragraph element, hides the first paragraph element
</ script >
</ body >
</ html > Удаляет соответствующие элементы из дерева DOM.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
$ ( 'p' ) . remove ( ) ; // removes all the paragraph elements from the DOM tree
</ script >
</ body >
</ html > Получает или необязательно устанавливает свойство CSS для соответствующих элементов.
CSS без значения вернет строку свойства CSS первого найденного соответствующего элемента. CSS вернет вычисленное значение свойства, если свойство не установлено явно, которое может варьироваться между браузерами. Например, элемент без явного веса шрифта вернет «нормально» в браузерах Opera и Webkit, но «400» в браузерах Firefox и Internet Explorer.
Значение установит значение свойства CSS для всех соответствующих элементов.
<!DOCTYPE html >
< html >
< head >
< style >
.bold {font-weight:900}
</ style >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p class =" bold " > Bar </ p >
< script >
$ ( 'p' ) . css ( 'font-weight' ) ; // returns the "font-weight" of the first paragraph element
$ ( 'p' ) . css ( 'color' , 'red' ) ; // sets all paragraph elements color to red
</ script >
</ body >
</ html > Получает класс для первого соответствующего элемента.
<!DOCTYPE html >
< html >
< head >
< style >
.bold {font-weight:900}
.red {color:red}
.mono {font-family:monospace}
</ style >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< div class =" red " > Foo </ div >
< div class =" mono " > Bar </ div >
< p > Foo </ p >
< p class =" mono " > Bar </ p >
< script >
$ ( 'div' ) . getClass ( ) ; // returns 'red', the class of the first div element
$ ( 'p' ) . getClass ( ) ; // returns undefined as the first paragraph element has no class set
</ script >
</ body >
</ html > Устанавливает класс всех соответствующих элементов, заменяющих любой класс существующих элементов этим классом.
<!DOCTYPE html >
< html >
< head >
< style >
.bold {font-weight:900}
.red {color:red}
.mono {font-family:monospace}
</ style >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p class =" mono " > Bar </ p >
< script >
$ ( 'p' ) . setClass ( 'red bold' ) ; // sets the class to "red" and "bold" for all paragraph elements
</ script >
</ body >
</ html > Добавляет класс ко всем соответствующим элементам.
<!DOCTYPE html >
< html >
< head >
< style >
.bold {font-weight:900}
.red {color:red}
.mono {font-family:monospace}
</ style >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p class =" mono " > Bar </ p >
< script >
$ ( 'p' ) . addClass ( 'mono' ) ; // adds the "mono" class to all paragraph elements
</ script >
</ body >
</ html > Удаляет класс из всех соответствующих элементов.
<!DOCTYPE html >
< html >
< head >
< style >
.bold {font-weight:900}
.red {color:red}
.mono {font-family:monospace}
</ style >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p class =" mono " > Bar </ p >
< script >
$ ( 'p' ) . removeClass ( 'mono' ) ; // removes the "mono" class from all paragraph elements
</ script >
</ body >
</ html > Переключать класс для соответствующих элементов.
<!DOCTYPE html >
< html >
< head >
< style >
.bold {font-weight:900}
.red {color:red}
.mono {font-family:monospace}
</ style >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p class =" mono " > Bar </ p >
< script >
$ ( 'p' ) . toggleClass ( 'mono' ) ; // toggles the mono class on all paragraph elements
</ script >
</ body >
</ html > Возвращает True, если первый сопоставленный элемент включает в себя класс.
<!DOCTYPE html >
< html >
< head >
< style >
.bold {font-weight:900}
.red {color:red}
.mono {font-family:monospace}
</ style >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< div class =" red " > Foo </ div >
< div class =" mono " > Bar </ div >
< p > Foo </ p >
< p class =" mono " > Bar </ p >
< script >
$ ( 'div' ) . cls ( 'red' ) ; // returns true as the first div element includes the 'red' class
$ ( 'p' ) . cls ( 'mono' ) ; // returns undefined as the first paragraph element doesn't include the 'mono' class
</ script >
</ body >
</ html > Получает или необязательно устанавливает внутренний HTML соответствующих элементов.
HTML без аргументов вернет строку HTML первого найденного соответствующего элемента.
Если указан аргумент HTML , это заменит внутренний HTML всех соответствующих элементов.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
$ ( 'p' ) . html ( ) ; // returns an inner HTML "Foo" of the first paragraph element
$ ( 'p' ) . html ( '<i>Foobar</i>' ) ; // Sets the inner HTML of all paragraph elements to "<i>Foobar</i>"
</ script >
</ body >
</ html > Вставляет HTML перед всеми соответствующими элементами.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
$ ( 'p' ) . htmlBefore ( '<i>Foobar</i>' ) ; // Inserts "<i>Foobar</i>" before all paragraph elements
</ script >
</ body >
</ html > Вставляет HTML после всех соответствующих элементов.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
$ ( 'p' ) . htmlAfter ( '<i>Foobar</i>' ) ; // Inserts "<i>Foobar</i>" after all paragraph elements
</ script >
</ body >
</ html > Вставляет HTML после всех соответствующих элементов внутренних элементов.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
$ ( 'p' ) . htmlAppend ( '<i>Foobar</i>' ) ; // Inserts "<i>Foobar</i>" after all paragraph child elements
</ script >
</ body >
</ html > Вставляет HTML перед всеми соответствующими элементами внутренних элементов.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
$ ( 'p' ) . htmlPrepend ( '<i>Foobar</i>' ) ; // Inserts "<i>Foobar</i>" before all paragraph child elements
</ script >
</ body >
</ html > Получает или необязательно устанавливает свойство для всех соответствующих элементов.
ATTR без аргумента Value вернет строку свойства первого соответствующего элемента.
Значение установит значение свойства для всех соответствующих элементов.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > < a href =" http://en.wikipedia.org/wiki/Foobar " > Foobar </ a > </ p >
< script >
$ ( 'a' ) . attr ( 'href' ) ; // returns the "href" property value "http://en.wikipedia.org/wiki/Foobar" of the first link element
$ ( 'a' ) . attr ( 'target' , '_blank' ) ; // sets the "target" property for all link elements to "_blank"
</ script >
</ body >
</ html > Получает или необязательно устанавливает значение ключа данных для всех соответствующих элементов.
Данные без аргумента значения вернут значение ключа данных первого найденного элемента соответствия.
Значение установит значение ключа данных для всех соответствующих элементов.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p data-test =" foo " > </ p >
< p data-test =" bar " > </ p >
< script >
$ ( 'p' ) . data ( 'test' ) ; // returns "foo" for data key "test" of first paragraph element found
$ ( 'p' ) . data ( 'test' , 'foobar' ) ; // sets the date key "test" value to "foobar" on all matching paragraph elements
</ script >
</ body >
</ html > Получает или необязательно устанавливает значение элементов соответствующей формы.
Val без аргументов вернет строку значения первого найденного элемента формы сопоставления. Для выбора списков Chibi вернет выбранную строку значения опции, если таковые имеются. Для выбора списков с несколькими выборами Chibi вернет массив выбранных строк значения опции, если таковые имеются.
Значение установит значение элементов поля соответствующей формы. Для выбора списков это выберет опцию, соответствующую этому значению. Для выбора списков с несколькими выборами передача массива значений выберет все параметры в списке Select, соответствующие этими значениями.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< form >
< input type =" text " value =" Foobar " name =" text " >
< select multiple =" multiple " >
< option value =" foo " > Foo </ option >
< option value =" bar " selected =" selected " > Bar </ option >
</ select >
</ form >
< script >
$ ( 'input' ) . val ( ) ; // returns "Foobar"
$ ( 'input' ) . val ( 'Foo Bar' ) ; // sets the value for all input elements to "Foo Bar"
$ ( 'select' ) . val ( ) ; // returns "bar", the selected option value
$ ( 'select' ) . val ( 'foo' ) ; // selects the option matching "foo"
$ ( 'select' ) . val ( [ 'foo' , 'bar' ] ) ; // selects the options matching "foo" or "bar" values
</ script >
</ body >
</ html > Получает или необязательно устанавливает проверенный статус флажести или радиоэлементов.
Проверено без аргументов вернет проверенный логический подготовку первого найденного соответствующего элемента.
Boolean установит проверенный статус соответствующего флажона или радиоэлементов.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< form >
< input type =" checkbox " value =" Foobar " name =" chk " >
</ form >
< script >
$ ( 'input' ) . checked ( true ) ; // checks the checkbox
$ ( 'input' ) . checked ( ) ; // returns true
$ ( 'input' ) . checked ( false ) ; // unchecks the checkbox
$ ( 'input' ) . checked ( ) ; // returns false
</ script >
</ body >
</ html > Добавляет слушателя событий ко всем соответствующим элементам.
На добавлении слушателя событий ко всем соответствующим элементам. Нет необходимости использовать формат событий HTML («на» + событие), поскольку Chibi автоматически будет автоматически префикс событие по мере необходимости. также поддерживает проходящее window и document в качестве селектора.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
function foo ( ) {
// Do awesome
}
$ ( 'p' ) . on ( 'click' , foo ) ; // adds the 'foo' click event listener to all paragraphs
</ script >
</ body >
</ html > Удалил слушателя событий из всех соответствующих элементов.
Убрал слушателя событий из всех соответствующих элементов. Нет необходимости использовать формат события HTML («OFF» + событие), поскольку Chibi автоматически будет автоматически префикс событие по мере необходимости. OFF также поддерживает проходящее window и document в качестве селектора.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< p > Foo </ p >
< p > Bar </ p >
< script >
function foo ( ) {
// Do awesome
}
$ ( 'p' ) . on ( 'click' , foo ) ; // adds the 'foo' click event listener to all paragraph elements
$ ( 'p' ) . off ( 'click' , foo ) ; // removes the 'foo' click event listener from all paragraph elements
</ script >
</ body >
</ html > Отправляет запрос Get Ajax, при желании запустить обратный вызов с помощью xhr responseText и status . Псевдоним $ (селектор) .ajax с методом получения
Когда Nocache верен, к URL -адресу добавляется марка времени _ts , чтобы предотвратить кэширование, да, я смотрю на вас, браузер Android и iOS 6.
Получить поддержку JSON в качестве селектора ({name: value}), полезно для того, когда вы хотите отправить данные без использования элементов формы.
Для перекрестных запросов Get использует JSONP по умолчанию, но это переопределено, когда nojsonp правда. Запросы JSONP применяют любой обратный вызов к callback=? или аналогично в URL GET .
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< form >
< input type =" text " value =" Foobar " name =" text " >
</ form >
< script >
// XHR all form data using "GET" to "ajax.html"
$ ( 'form' ) . get ( 'ajax.html' ) ;
// XHR the JSON using "GET" to "ajax.html"
$ ( { text : 'Foo Bar' } ) . get ( 'ajax.html' ) ;
</ script >
</ body >
</ html > <!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< script >
// JSONP
$ ( ) . get ( 'https://api.github.com/users/kylebarrow/repos?sort=created&direction=asc&callback=?' , function ( data , status ) {
// Do awesome
} ) ;
// JSONP with JSON query
$ ( { sort : "created" , direction : "asc" , callback : "?" } ) . get ( 'https://api.github.com/users/kylebarrow/repos' , function ( data , status ) {
// Do awesome
} ) ;
</ script >
</ body >
</ html > Отправляет запрос Post Ajax, при желании запустить обратный вызов с помощью xhr responseText и status . Псевдоним $ (селектор) .ajax с методом Post
Когда Nocache верен, к URL -адресу добавляется марка времени _ts для предотвращения кэширования.
Post поддерживает JSON как селектор ({name: value}), полезно для того, когда вы хотите отправить данные без использования элементов формы.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< form >
< input type =" text " value =" Foobar " name =" text " >
</ form >
< script >
// XHR the JSON using "POST" to "ajax.html"
$ ( { text : 'Foo Bar' } ) . post ( 'ajax.html' ) ;
// XHR all form data using "POST" to "ajax.html", returns responseText and status, adds a cache busting time stamp
$ ( 'form' ) . post ( 'ajax.html' , function ( data , status ) {
// Do awesome
} , true ) ;
</ script >
</ body >
</ html > Отправляет запрос AJAX, при желании выпустить обратный вызов с xhr responseText и status
Ajax использует метод GET, если ни один не указан. Когда Nocache верен, к URL -адресу добавляется марка времени _ts для предотвращения кэширования.
Ajax поддерживает JSON как селектор ({name: value}), полезно для того, когда вы хотите отправить данные без использования элементов формы.
Для перекрестных запросов Ajax использует JSONP по умолчанию, но это переопределено, когда nojsonp правда. Запросы JSONP применяют любой обратный вызов к callback=? или аналогично в URL Ajax . Метод , очевидно, всегда GET для запросов JSONP.
<!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< form >
< input type =" text " value =" Foobar " name =" text " >
</ form >
< script >
// XHR all form data using "GET" to "ajax.html"
$ ( 'form' ) . ajax ( 'ajax.html' ) ;
// XHR the JSON using "GET" to "ajax.html"
$ ( { text : 'Foo Bar' } ) . ajax ( 'ajax.html' ) ;
// XHR all form data using "POST" to "ajax.html", returns responseText and status, adds a cache busting time stamp
$ ( 'form' ) . ajax ( 'ajax.html' , "POST" , function ( data , status ) {
// Do awesome
} , true ) ;
</ script >
</ body >
</ html > <!DOCTYPE html >
< html >
< head >
< script src =" chibi-min.js " > </ script >
</ head >
< body >
< script >
// JSONP
$ ( ) . ajax ( 'https://api.github.com/users/kylebarrow/repos?sort=created&direction=asc&callback=?' , 'GET' , function ( data , status ) {
// Do awesome
} ) ;
// JSONP with JSON query
$ ( { sort : "created" , direction : "asc" , callback : "?" } ) . ajax ( 'https://api.github.com/users/kylebarrow/repos' , 'GET' , function ( data , status ) {
// Do awesome
} ) ;
</ script >
</ body >
</ html >npm install
gulp