Apakah ada singkatan untuk JavaScript document.getElementById? Atau adakah cara saya bisa mendefinisikannya? Ia mendapat mengetik ulang berulang-ulang yang lebih dan lebih .
javascript
Fox Wilson
sumber
sumber
Jawaban:
Di sini saya menggunakan
$
, tetapi Anda dapat menggunakan nama variabel yang valid.sumber
$
, selamat memilihnya juga?"$
jika Anda tidak pernah memuatnya.var $ = document.getElementById.bind(document)
, tetapibind
tidak tersedia di semua browser. Mungkin lebih cepat, karena saya hanya menggunakan metode asli. Hanya ingin menambahkan ini.Untuk menyimpan karakter tambahan Anda dapat mencemari prototipe String seperti ini:
Ini berfungsi di beberapa browser dan Anda dapat mengakses elemen dengan cara ini:
Saya telah memilih nama properti hampir secara acak. Jika Anda benar-benar ingin menggunakan singkatan ini, saya sarankan untuk membuat sesuatu yang lebih mudah untuk diketik.
sumber
Anda dapat dengan mudah membuat singkatan sendiri dengan mudah:
sumber
Alternatif cepat untuk berkontribusi:
Kemudian lakukan saja:
Ada tangkapan, itu tidak berfungsi di browser yang tidak memungkinkan Anda memperluas prototipe (misalnya IE6).
sumber
prototype.js
yang melakukan hal yang persis sama.(Singkatan tidak hanya mendapatkan elemen berdasarkan ID, tetapi juga mendapatkan elemen berdasarkan kelas: P)
Saya menggunakan sesuatu seperti
Penggunaan:
_(".test")
mengembalikan semua elemen dengan nama kelastest
, dan_("#blah")
mengembalikan elemen dengan idblah
.sumber
document.querySelectorAll
, daripada mencoba meniru bagian dariquerySelectorAll
metode dalam fungsi khusus.sumber
id disimpan ke
window
.HTML
JS
sama dengan menulis:
Saya tidak menyarankan menggunakan metode sebelumnya karena ini bukan praktik umum.
sumber
<div id="location"></div>
dan meneleponwindow.location
tidak akan bekerja.Ada beberapa jawaban bagus di sini dan beberapa menari di sekitar sintaks seperti jQuery, tetapi tidak ada yang menyebutkan benar-benar menggunakan jQuery. Jika Anda tidak menentang mencobanya, lihat jQuery . Ini memungkinkan Anda memilih elemen super mudah seperti ini ..
Menurut ID :
Menurut kelas CSS :
Menurut jenis elemen :
sumber
Tidak ada yang terintegrasi.
Jika Anda tidak keberatan mencemari namespace global, mengapa tidak:
EDIT - Saya mengubah nama fungsi menjadi sesuatu yang tidak biasa , tetapi pendek dan tidak bentrok dengan jQuery atau apa pun yang menggunakan
$
tanda kosong .sumber
Ya, itu akan berulang-ulang untuk menggunakan fungsi yang sama lebih dan lebih setiap kali dengan argumen yang berbeda:
Jadi, hal yang menyenangkan adalah fungsi yang mengambil semua argumen tersebut pada saat yang bersamaan:
Maka Anda akan memiliki referensi ke semua elemen Anda yang disimpan dalam satu objek:
Tapi Anda masih harus mencantumkan semua id itu.
Anda dapat lebih menyederhanakannya jika Anda menginginkan semua elemen dengan id:
Tetapi akan sangat mahal untuk memanggil fungsi ini jika Anda memiliki banyak elemen.
Jadi, secara teoritis, jika Anda akan menggunakan
with
kata kunci tersebut, Anda dapat menulis kode seperti ini:Tapi saya tidak ingin mempromosikan penggunaan
with
. Mungkin ada cara yang lebih baik untuk melakukannya.sumber
Nah, Anda bisa membuat fungsi singkatan, itulah yang saya lakukan.
dan kemudian ketika Anda ingin mendapatkannya, lakukan saja
Juga, trik berguna lainnya yang saya temukan, adalah jika Anda ingin mendapatkan nilai atau innerHTML dari ID item, Anda dapat membuat fungsi seperti ini:
Harap Anda menyukainya!
Saya sebenarnya membuat semacam pustaka javascript mini berdasarkan seluruh ide ini. Ini dia.
sumber
Saya sering menggunakan:
Saya pikir ini lebih baik daripada fungsi eksternal (misalnya
$()
ataubyId()
) karena Anda dapat melakukan hal-hal seperti ini:Btw, jangan gunakan jQuery untuk ini, jQuery jauh lebih lambat daripada
document.getElementById()
, fungsi eksternal seperti$()
orbyId()
, atau metode saya: http://jsperf.com/document-getelementbyid-vs-jquery/5sumber
Jika ini ada di situs Anda sendiri, pertimbangkan untuk menggunakan pustaka seperti jQuery untuk memberi Anda ini dan banyak singkatan berguna lainnya yang juga mengabstraksi perbedaan browser. Secara pribadi, jika saya menulis cukup banyak kode untuk diganggu dengan cara lama, saya akan menyertakan jQuery.
Di jQuery, sintaksnya adalah
$("#someid")
. Jika Anda kemudian menginginkan elemen DOM yang sebenarnya dan bukan pembungkus jQuery, itu$("#someid")[0]
, tetapi Anda kemungkinan besar dapat melakukan apa pun yang Anda cari dengan pembungkus jQuery.Atau, jika Anda menggunakan ini di konsol pengembang browser, teliti utilitas bawaan mereka. Seperti yang disebutkan orang lain, konsol JavaScript Chrome menyertakan sebuah
$("someid")
metode, dan Anda juga dapat mengeklik elemen di tampilan "Elemen" alat pengembang lalu mereferensikannya$0
dari konsol. Elemen yang dipilih sebelumnya menjadi$1
dan seterusnya.sumber
Jika satu-satunya masalah di sini adalah mengetik, mungkin Anda harus mendapatkan editor JavaScript dengan intellisense sendiri.
Jika tujuannya adalah untuk mendapatkan kode yang lebih pendek, Anda dapat mempertimbangkan pustaka JavaScript seperti jQuery, atau Anda dapat menulis fungsi singkat Anda sendiri, seperti:
Saya biasa melakukan hal di atas untuk kinerja yang lebih baik. Apa yang saya pelajari tahun lalu adalah bahwa dengan teknik kompresi server melakukannya secara otomatis untuk Anda, jadi teknik pemendekan saya sebenarnya membuat kode saya lebih berat. Sekarang saya senang mengetik seluruh document.getElementById.
sumber
Jika Anda meminta fungsi singkatan ...
atau
sumber
Fungsi panah membuat lebih pendek.
sumber
id
argumen.bungkus document.querySelectorAll ... jquery seperti pilih
sumber
$('#myId')
maka biasanya HTMLElement itu harus dikembalikan, karena Anda diharapkan menetapkan id itu tepat sekali. Tetapi jika Anda akan menggunakannya dengan kueri yang mungkin cocok dengan beberapa elemen, itu menjadi tidak praktis.Nah, jika id elemen tidak bersaing dengan properti apa pun dari objek global, Anda tidak perlu menggunakan fungsi apa pun.
edit: Tapi Anda tidak ingin menggunakan 'fitur' ini.
sumber
Pembungkus lain:
Ini, jika Anda tidak ingin menggunakan yang tidak terpikirkan , lihat di atas.
sumber
Saya menulis ini kemarin dan merasa cukup berguna.
Beginilah cara Anda menggunakannya.
sumber