Pikirkan tidak apa -apa untuk menyajikan 30kB lebih dari 3G hanya untuk memanipulasi beberapa elemen DOM? Tentu saja Anda tidak melakukannya karena itu adalah langkah asshat dan Anda bukan asshat. Anda mungkin malah menggunakan beberapa baris vanilla javascript, mungkin sedikit CSS :active dengan transisi, semuanya saat mengendarai unicorn tanpa pelangi melalui pelangi ganda, tanpa tangan.
Mengerjakan sesuatu yang sedikit lebih kompleks? Tidak seperti lemak, kerangka kerja dewasa dan perpustakaan, Chibi berfokus hanya pada hal-hal penting, dilebur dan dicampur dengan pelangi optimasi untuk menciptakan mikro-walibrary yang benar-benar ringan yang memungkinkan Anda melakukan hal-hal yang luar biasa, bebas.
document.querySelectorAll() terbatas pada dukungan CSS browser dan tidak secepat beberapa mesin pemilih khusus. Ini berarti tidak ada input[type=text] atau p:nth-child(even) selector dengan IE6. Untungnya browser modern tidak membutuhkan polyfill ini.document.querySelectorAll() atau window.getComputedStyle tidak dapat membuntuti.Versi 3 adalah pembaruan besar dengan banyak perubahan besar. Jika sulit untuk merangkul perubahan, versi 1 masih tersedia di sini.
Chibi telah diuji dengan dan mendukung browser berikut:
Chibi juga harus bekerja dengan browser lain yang mendukung document.querySelectorAll() .
Ambil dari sini atau
npm install chibijs Sintaks Chibi mirip dengan yang dipelopori oleh jQuery: $(selector).method() . Ia sengaja menggunakan $ namespace yang sama dengan jQuery karena perpustakaan mikro dan perpustakaan dewasa tidak boleh bercampur.
Chibi mendukung pemilih CSS standar tetapi Anda juga dapat melewati elemen DOM secara langsung:
$ ( "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 mendukung metode chaining $(selector).method().anothermethod().evenmoremethods() dari metode apa pun yang tidak mengembalikan nilai (string, boolean, dll.).
Fires Handler Saat DOM siap.
Gunakan untuk menembakkan fungsi saat DOM siap. Termasuk pemilih yang tidak masuk akal untuk metode ini, jangan lakukan itu.
$ ( ) . ready ( function ( ) {
// Do awesome
} ) ;atau mungkin
function foo ( ) {
// Do awesome
}
$ ( ) . ready ( foo ) ; Fires Handler Saat halaman dimuat.
Gunakan untuk menembakkan fungsi saat halaman dimuat. Termasuk pemilih yang tidak masuk akal untuk metode ini, jangan lakukan itu.
function foo ( ) {
// Do awesome
}
$ ( ) . loaded ( foo ) ; Mengeksekusi fungsi pada setiap elemen pencocokan
Setiap melewati setiap elemen pencocokan ke fungsi yang ditentukan.
<!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 > Menemukan elemen pencocokan pertama.
Pertama akan mengembalikan array yang berisi elemen pencocokan pertama, berguna saat bekerja dengan browser jelek seperti IE6 dengan dukungan semu CSS yang lemah, terutama ketika dikombinasikan dengan rantai metode.
Menemukan elemen pencocokan terakhir.
Terakhir akan mengembalikan array yang berisi elemen pencocokan terakhir.
Menemukan elemen aneh yang cocok.
ODD akan mengembalikan array yang berisi elemen aneh yang cocok.
Menemukan elemen yang cocok.
Bahkan akan mengembalikan array yang berisi elemen genap yang cocok.
<!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 > Menyembunyikan elemen yang cocok.
<!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 > Menunjukkan elemen yang cocok.
<!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 > Mengaktifkan visibilitas elemen yang cocok.
<!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 > Menghapus elemen yang cocok dari pohon 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 > Mendapat atau secara opsional mengatur properti CSS untuk elemen yang cocok.
CSS tanpa nilai akan mengembalikan string properti CSS dari elemen pencocokan pertama yang ditemukan. CSS akan mengembalikan nilai properti yang dihitung jika properti tidak secara eksplisit diatur yang dapat bervariasi di antara browser. Misalnya, elemen tanpa bobot font eksplisit akan mengembalikan 'normal' di browser opera dan webkit tetapi '400' di browser Firefox dan Internet Explorer.
Nilai akan menetapkan nilai properti CSS untuk semua elemen yang cocok.
<!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 > Mendapat kelas untuk elemen pencocokan pertama yang ditemukan.
<!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 > Mengatur kelas dari semua elemen pencocokan yang menggantikan kelas elemen yang ada dengan kelas ini.
<!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 > Menambahkan kelas ke semua elemen yang cocok.
<!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 > Menghapus kelas dari semua elemen yang cocok.
<!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 > Kelas Bergantian untuk Elemen Pencocokan.
<!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 > Mengembalikan true jika elemen pencocokan pertama yang ditemukan termasuk kelas.
<!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 > Mendapat atau secara opsional menetapkan HTML dalam elemen yang cocok.
HTML tanpa argumen akan mengembalikan string HTML dari elemen pencocokan pertama yang ditemukan.
Jika argumen HTML ditentukan, ini akan menggantikan HTML dalam semua elemen yang cocok.
<!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 > Sisipkan HTML sebelum semua elemen yang cocok.
<!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 > Sisipkan HTML setelah semua elemen yang cocok.
<!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 > Sisipkan HTML setelah semua elemen pencocokan elemen dalam.
<!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 > Sisipkan HTML sebelum semua elemen pencocokan elemen dalam.
<!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 > Mendapat atau secara opsional mengatur properti untuk semua elemen yang cocok.
ATTR tanpa argumen nilai akan mengembalikan string properti dari elemen pencocokan pertama yang ditemukan.
Nilai akan menetapkan nilai properti untuk semua elemen yang cocok.
<!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 > Mendapat atau secara opsional menetapkan nilai kunci data untuk semua elemen yang cocok.
Data tanpa argumen nilai akan mengembalikan nilai kunci data dari elemen pencocokan pertama yang ditemukan.
Nilai akan menetapkan nilai kunci data untuk semua elemen yang cocok.
<!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 > Mendapat atau secara opsional menetapkan nilai elemen formulir yang cocok.
Val tanpa argumen akan mengembalikan string nilai elemen bentuk pencocokan pertama yang ditemukan. Untuk daftar pilih, Chibi akan mengembalikan string nilai opsi yang dipilih, jika ada. Untuk daftar pilih dengan beberapa Selects, Chibi akan mengembalikan array string nilai opsi yang dipilih, jika ada.
Nilai akan menetapkan nilai elemen bidang bentuk yang cocok. Untuk daftar pilih, ini akan memilih opsi yang cocok dengan nilai ini. Untuk daftar pilih dengan beberapa Selects, melewati array nilai akan memilih semua opsi dalam daftar pilih yang cocok dengan nilai -nilai ini.
<!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 > Mendapat atau secara opsional menetapkan status kotak centang atau elemen radio.
Diperiksa tanpa argumen akan mengembalikan boolean yang diperiksa dari elemen pencocokan pertama yang ditemukan.
Boolean akan menetapkan status kotak centang yang cocok atau elemen radio.
<!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 > Menambahkan pendengar acara ke semua elemen yang cocok.
Di menambahkan pendengar acara ke semua elemen yang cocok. Tidak perlu menggunakan format acara HTML ('ON' + Event) karena Chibi akan secara otomatis mengawali acara sesuai kebutuhan. juga mendukung window yang lewat dan document sebagai pemilih.
<!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 > Menghapus pendengar acara dari semua elemen yang cocok.
Off menghapus pendengar acara dari semua elemen yang cocok. Tidak perlu menggunakan format acara HTML ('OFF' + Event) karena Chibi akan secara otomatis mengawali acara sesuai kebutuhan. OFF juga mendukung window yang lewat dan document sebagai pemilih.
<!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 > Mengirimkan permintaan Get AJAX, secara opsional menembakkan panggilan balik dengan responseText dan status XHR. Alias $ (pemilih). Ajax dengan metode get
Ketika Nocache benar, perangko waktu _ts ditambahkan ke URL untuk mencegah caching, ya, saya melihat Anda Browser Android dan iOS 6.
Dapatkan dukungan JSON sebagai pemilih ({name: value}), berguna untuk saat Anda ingin mengirim data tanpa menggunakan elemen formulir.
Untuk permintaan silang domain, dapatkan penggunaan JSONP secara default tetapi ini ditimpa ketika nojsonp benar. Permintaan JSONP akan menerapkan panggilan balik apa pun ke callback=? atau serupa di 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 > Mengirimkan Posting Permintaan AJAX, secara opsional menembakkan panggilan balik dengan responseText dan status XHR. Alias $ (pemilih). Ajax dengan metode post
Ketika Nocache benar, cap waktu _ts ditambahkan ke URL untuk mencegah caching.
Posting mendukung JSON sebagai pemilih ({name: value}), berguna untuk saat Anda ingin mengirim data tanpa menggunakan elemen formulir.
<!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 > Mengirimkan permintaan AJAX, secara opsional menembakkan panggilan balik dengan responseText dan status XHR
Ajax menggunakan metode GET jika tidak ada yang ditentukan. Ketika Nocache benar, cap waktu _ts ditambahkan ke URL untuk mencegah caching.
AJAX mendukung JSON sebagai pemilih ({name: value}), berguna untuk saat Anda ingin mengirim data tanpa menggunakan elemen formulir.
Untuk permintaan silang domain, Ajax menggunakan JSONP secara default tetapi ini ditimpa ketika NoJSONP benar. Permintaan JSONP akan menerapkan panggilan balik apa pun ke callback=? atau serupa di URL AJAX . The method is obviously always GET for JSONP requests.
<!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