Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memilih Nod Teks dalam Elemen Menggunakan jQuery atau JavaScript Tulen?

Bagaimanakah Saya Boleh Memilih Nod Teks dalam Elemen Menggunakan jQuery atau JavaScript Tulen?

Linda Hamilton
Linda Hamiltonasal
2024-12-28 01:59:09241semak imbas

How Can I Select Text Nodes within an Element Using jQuery or Pure JavaScript?

Memilih Nod Teks dengan jQuery

Memilih nod teks turunan bagi elemen dengan jQuery memerlukan sedikit kreativiti. Walaupun jQuery tidak menawarkan fungsi khusus untuk tugasan ini, adalah mungkin untuk menggabungkan kaedah contents() dan find() untuk mencapai hasil yang diingini.

jQuery Solution

var getTextNodesIn = function(el) {
    return $(el).find(":not(iframe)").addBack().contents().filter(function() {
        return this.nodeType == 3;
    });
};

getTextNodesIn(el);

Kod ini mengumpulkan nod anak, termasuk nod teks, menggunakan contents(). Ia kemudian mengasingkan unsur keturunan dan nod teks menggunakan find(). Ambil perhatian bahawa penyelesaian ini memerlukan pengendalian khas untuk elemen iframe.

Penyelesaian JavaScript Tulen

Jika anda lebih suka pendekatan JavaScript tulen, fungsi berikut boleh digunakan:

function getTextNodesIn(node, includeWhitespaceNodes) {
    var textNodes = [], nonWhitespaceMatcher = /\S/;

    function getTextNodes(node) {
        if (node.nodeType == 3) {
            if (includeWhitespaceNodes || nonWhitespaceMatcher.test(node.nodeValue)) {
                textNodes.push(node);
            }
        } else {
            for (var i = 0, len = node.childNodes.length; i < len; ++i) {
                getTextNodes(node.childNodes[i]);
            }
        }
    }

    getTextNodes(node);
    return textNodes;
}

getTextNodesIn(el);

Fungsi ini merentasi pepohon DOM secara rekursif, mengenal pasti nod teks berdasarkan jenis nodnya. Ia membenarkan kemasukan nod ruang putih dengan menghantar parameter.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Nod Teks dalam Elemen Menggunakan jQuery atau JavaScript Tulen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn