Saya mencoba untuk menelusuri suatu elemen dan mendapatkan semua atribut dari elemen tersebut untuk menampilkannya, misalnya tag mungkin memiliki 3 atau lebih atribut, tidak diketahui oleh saya dan saya perlu mendapatkan nama dan nilai atribut ini. Saya sedang memikirkan sesuatu seperti:
$(this).attr().each(function(index, element) {
var name = $(this).name;
var value = $(this).value;
//Do something with name and value...
});
Adakah yang bisa memberi tahu saya apakah ini mungkin, dan jika demikian, apa sintaks yang benar?
javascript
jquery
attributes
Styphon
sumber
sumber
$().attr()
attributes
koleksi berisi semua atribut mungkin dalam IE yang lebih tua, bukan hanya mereka yang telah ditentukan dalam HTML. Anda dapat mengatasi ini dengan memfilter daftar atribut menggunakan masing-masingspecified
properti atribut ..attr()
metode jQuery . Aneh, jQuery tidak memasukkannya.this[0].attributes
?attributes
bukan Array ... di Chrome setidaknya itu adalahNamedNodeMap
, yang merupakan Object.Berikut ini adalah ikhtisar dari banyak cara yang dapat dilakukan, untuk referensi saya sendiri dan juga milik Anda :) Fungsi mengembalikan hash nama atribut dan nilainya.
Vanilla JS :
Vanilla JS dengan Array.reduce
Berfungsi untuk browser yang mendukung ES 5.1 (2011). Membutuhkan IE9 +, tidak berfungsi di IE8.
jQuery
Fungsi ini mengharapkan objek jQuery, bukan elemen DOM.
Menggarisbawahi
Juga berfungsi untuk lodash.
Lodash
Bahkan lebih ringkas daripada versi Underscore, tetapi hanya berfungsi untuk lodash, bukan untuk Underscore. Membutuhkan IE9 +, bermasalah di IE8. Kudos to @AlJey untuk yang itu .
Halaman uji
Di JS Bin, ada halaman pengujian langsung yang mencakup semua fungsi ini. Tes ini mencakup atribut boolean (
hidden
) dan atribut yang disebutkan (contenteditable=""
).sumber
Skrip debugging (solusi jquery berdasarkan jawaban di atas oleh hashchange)
sumber
dengan LoDash Anda bisa melakukan ini:
sumber
Menggunakan fungsi javascript lebih mudah untuk mendapatkan semua atribut elemen di NamedArrayFormat.
sumber
Solusi sederhana oleh Underscore.js
Misalnya: Dapatkan semua tautan teks yang kelasnya dimiliki orang tua
someClass
Biola yang bekerja
sumber
Saran saya:
var a = $ (el) .attrs ();
sumber