Saya ingin meletakkan semua atribut dalam elemen Html ke dalam array: seperti saya punya Obyek jQuery, yang html terlihat seperti ini:
<span name="test" message="test2"></span>
sekarang salah satu caranya adalah dengan menggunakan parser xml yang dijelaskan di sini , tetapi kemudian saya perlu tahu bagaimana cara mendapatkan kode html objek saya.
cara lain adalah membuatnya dengan jquery, tapi bagaimana caranya? jumlah atribut dan nama-nama yang umum.
Terima kasih
Btw: Saya tidak bisa mengakses elemen dengan document.getelementbyid atau yang serupa.
getElementById
-var el = document.getElementById($(myObj).attr("id"));
get
metode ... misalnya:var obj = $('#example').get(0);
Anda dapat menggunakan plugin sederhana ini sebagai $ ('# some_id'). GetAttributes ();
sumber
Sederhana:
sumber
Attr.nodeValue
tidak digunakan lagivalue
, kata Google Chrome. Jadi ini bisa jadithis.name + ':' + this.value
. The Attr InterfaceKarena di IE7 elem.attributes mendaftar semua atribut yang mungkin, tidak hanya yang sekarang, kita harus menguji nilai atribut. Plugin ini berfungsi di semua browser utama:
Pemakaian:
sumber
Setter dan Getter!
Menggunakan:
sumber
jQuery.attr
.jQuery.attr
di setter, tetapi mungkin akan bermanfaat untuk menggunakannya dalam pengambil juga.Gunakan
.slice
untuk mengonversiattributes
properti menjadi ArrayThe
attributes
milik node DOM adalahNamedNodeMap
, yang merupakan Array-seperti objek.Objek seperti array adalah objek yang memiliki
length
properti dan yang nama propertinya disebutkan, tetapi sebaliknya memiliki metode sendiri dan tidak diwarisi dariArray.prototype
The
slice
metode dapat digunakan untuk mengkonversi objek Array seperti ke Array baru .sumber
attrs
, Anda dapat mengakses nama atribut denganname
properti pada item.Pendekatan ini berfungsi dengan baik jika Anda perlu mendapatkan semua atribut dengan nama dan nilai dalam objek yang dikembalikan dalam array.
Contoh output:
Jika Anda hanya menginginkan array nama atribut untuk elemen itu, Anda bisa memetakan hasilnya:
sumber
Roland Bouman 's jawabannya adalah yang terbaik, sederhana cara Vanilla. Saya perhatikan beberapa upaya di plugs jQ, tetapi mereka hanya tampaknya tidak "penuh" bagi saya, jadi saya membuatnya sendiri. Kemunduran hanya sejauh ini telah ketidakmampuan untuk akses attrs dinamis ditambahkan tanpa langsung menelepon
elm.attr('dynamicAttr')
. Namun, ini akan mengembalikan semua atribut alami dari objek elemen jQuery.Plugin menggunakan panggilan gaya jQuery sederhana:
Anda juga dapat menambahkan param string kedua untuk mendapatkan hanya satu attr tertentu. Ini tidak benar-benar diperlukan untuk satu pemilihan elemen, karena jQuery sudah menyediakan
$(elm).attr('name')
, namun, versi plugin saya memungkinkan untuk beberapa pengembalian. Jadi, misalnya, panggilan sepertiAkan menghasilkan array
[]
kembali objek{}
. Setiap objek akan terlihat seperti:Plugin
Sesuai
jsFiddle
Tampilkan cuplikan kode
sumber
Cara yang jauh lebih ringkas untuk melakukannya:
Cara lama (IE9 +):
Cara ES6 (Edge 12+):
document.querySelector()
mengembalikan Elemen pertama dalam dokumen yang cocok dengan pemilih yang ditentukan.Element.attributes
mengembalikan objek NamedNodeMap yang berisi atribut yang ditetapkan dari elemen HTML yang sesuai.[].map()
membuat array baru dengan hasil memanggil fungsi yang disediakan pada setiap elemen dalam array panggilan.Demo:
Tampilkan cuplikan kode
sumber
Apakah ini membantu?
Properti ini mengembalikan semua atribut elemen ke dalam array untuk Anda. Berikut ini sebuah contoh.
Untuk mendapatkan atribut dari banyak elemen dan mengaturnya, saya sarankan membuat array dari semua elemen yang ingin Anda lewati dan kemudian membuat sub array untuk semua atribut dari setiap elemen yang dilingkari.
Ini adalah contoh skrip yang akan mengulang elemen yang dikumpulkan dan mencetak dua atribut. Script ini mengasumsikan bahwa akan selalu ada dua atribut tetapi Anda dapat dengan mudah memperbaikinya dengan pemetaan lebih lanjut.
sumber
Setiap jawaban di sini tidak ada solusi paling sederhana menggunakan metode elemen getAttributeNames !
Ini mengambil nama-nama semua atribut elemen saat ini sebagai Array biasa, yang kemudian dapat Anda kurangi menjadi objek kunci / nilai yang bagus.
sumber
Bayangkan Anda memiliki elemen HTML seperti di bawah ini:
Salah satu cara Anda bisa mendapatkan semua atributnya adalah dengan mengubahnya menjadi sebuah array:
Dan di bawah ini adalah string yang akan Anda dapatkan (dari contoh), yang mencakup semua atribut:
sumber
Coba sesuatu seperti ini
dan kemudian dapatkan semua atribut
untuk penggunaan array atribut
sumber
Memiliki
<div id="mydiv" a='1' b='2'>...</div>
bisa menggunakansumber
Sangat sederhana. Anda hanya perlu mengulang elemen atribut dan mendorong nilai simpul mereka ke dalam array:
Jika ingin nama atribut Anda dapat mengganti 'nodeValue' untuk 'nodeName'.
sumber
Atribut ke Konversi objek
* Membutuhkan: lodash
Ini akan mengonversi semua atribut html ke objek bersarang
Contoh HTML:
<div custom-nested-path1="value1" custom-nested-path2="value2"></div>
Hasil:
{custom:{nested:{path1:"value1",path2:"value2"}}}
Jika parseJson disetel ke true, nilai json akan dikonversi ke objek
sumber
Dalam javascript:
Untuk mengakses nama dan nilai atribut:
sumber