getElementsByTagName() Equivalent for TextNodes
Sementara getElementsByTagName() cekap mendapatkan semula koleksi elemen dalam dokumen, ia mengecualikan objek textNode unik cabaran.
Pendekatan Alternatif
Walaupun tiada kaedah asli untuk mendapatkan semua objek textNode, beberapa pendekatan boleh mencapai ini dengan berkesan:
1. TreeWalker:
Menggunakan TreeWalker untuk menavigasi DOM dengan cara yang lebih mendalam, mengenal pasti dan mengumpul Nod teks.
2. Lelaran Traversal Tersuai:
Secara berulang melintasi DOM, memeriksa setiap nod dan mengkategorikan mana-mana jenis nod 3 sebagai Nod teks.
3. Rekursif Traversal Tersuai:
Menggunakan fungsi rekursif untuk turun melalui DOM, menangkap teksNod yang ditemui di sepanjang laluan lintasan.
4. Pertanyaan Xpath:
Memanfaatkan ungkapan XPath untuk memilih semua Nod teks dalam dokumen.
5. querySelectorAll:
Memilih semua nod dalam DOM dan menapis hasil untuk memasukkan hanya textNodes.
6. getElementsByTagName (Handicap):
Percubaan untuk mengenal pasti textNodes secara tidak langsung dengan menyasarkan anak pertama setiap elemen yang diambil oleh getElementsByTagName(), dengan mengandaikan ia sebagai textNode. Ambil perhatian bahawa pendekatan ini mempunyai had dan harus digunakan dengan berhati-hati.
Perbandingan Prestasi
Ujian prestasi mendedahkan bahawa getElementsByTagName() berprestasi paling pantas tetapi mengecualikan Nod teks tertentu. Sebaliknya, TreeWalker mempamerkan kelajuan yang setanding sambil menangkap semua textNodes dengan berkesan. Kaedah traversal rekursif tersuai adalah kaedah yang paling perlahan yang diuji.
Pertimbangan Tambahan
Tanpa mengira kaedah yang dipilih, mengakses kandungan teks sebenar TextNodes memerlukan lelaran dan pengekstrakan menggunakan node.nodeValue.
Untuk maklumat lanjut, rujuk perbincangan di http://bytes.com/topic/javascript/answers/153239-how-do-i-get-elements-text-node.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Semua Nod Teks dengan Cekap dalam Dokumen, Memandangkan Had `getElementsByTagName()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!