Bisakah Anda memberi tahu saya jika ada DOM API yang mencari elemen dengan nama atribut dan nilai atribut yang diberikan:
Sesuatu seperti:
doc.findElementByAttribute("myAttribute", "aValue");
javascript
dom
michael
sumber
sumber
Jawaban:
Pembaruan: Dalam beberapa tahun terakhir lanskap telah berubah secara drastis. Anda sekarang dapat dengan andal menggunakan
querySelector
danquerySelectorAll
, lihat jawaban Wojtek untuk bagaimana melakukan ini.Tidak perlu ketergantungan jQuery sekarang. Jika Anda menggunakan jQuery, bagus ... jika tidak, Anda tidak perlu hanya mengandalkan elemen untuk memilih atribut.
Tidak ada cara yang sangat singkat untuk melakukan ini di javascript vanilla, tetapi ada beberapa solusi yang tersedia.
Anda melakukan sesuatu seperti ini, mengulang elemen dan memeriksa atribut
Jika pustaka seperti jQuery adalah opsi, Anda dapat melakukannya dengan sedikit lebih mudah, seperti ini:
Jika nilainya bukan pengidentifikasi CSS yang valid (memiliki spasi atau tanda baca di dalamnya, dll.), Anda perlu tanda kutip di sekitar nilai (mereka dapat tunggal atau ganda):
Anda juga dapat melakukan
start-with
,ends-with
,contains
, dll ... ada beberapa pilihan untuk selector atribut .sumber
Browser modern mendukung bahasa asli
querySelectorAll
sehingga Anda dapat melakukannya:https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll
Detail tentang kompatibilitas browser:
Anda dapat menggunakan jQuery untuk mendukung browser yang usang (IE9 dan yang lebih lama):
sumber
SyntaxError: An invalid or illegal string was specified
'[data-foo="value"]'
Kita dapat menggunakan pemilih atribut di DOM dengan menggunakan
document.querySelector()
dandocument.querySelectorAll()
metode.untukmu:
dan dengan menggunakan
querySlectorAll()
:Dalam
querySelector()
danquerySelectorAll()
metode kita dapat memilih objek seperti yang kita pilih dalam "CSS".Lebih lanjut tentang pemilih atribut "CSS" di https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
sumber
ps jika Anda tahu tipe elemen yang tepat, Anda menambahkan parameter ke-3 (yaitu
div, a, p ...etc...
):tetapi pada awalnya, tentukan fungsi ini:
ps diperbarui per rekomendasi komentar.
sumber
document.querySelectorAll('[data-foo="value"]');
seperti yang diusulkan oleh @Wojtek Kruszewski pada awnser yang diterima.Berikut ini contohnya, Cara mencari gambar dalam dokumen berdasarkan atribut src:
sumber
Anda bisa menggunakan getAttribute:
https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute
sumber
p
elemen tanpa menggunakanid
atau setiapp
pada DOM (dan menguji atribut)Gunakan penyeleksi kueri, contoh:
input[name]
Input elemen denganname
properti.[id|=view]
Elemen dengan id yang dimulai denganview-
.[class~=button]
Elemen denganbutton
kelas.sumber