Cara Menjana Laluan CSS Tepat daripada Elemen DOM: Mengapa :nth-child Penting?

DDD
Lepaskan: 2024-10-25 05:40:29
asal
701 orang telah melayarinya

How to Generate Accurate CSS Paths from DOM Elements: Why :nth-child Matters?

Cara Menjana Laluan CSS Tepat daripada Elemen DOM

Anda telah menyediakan fungsi yang mendapatkan semula laluan CSS daripada elemen DOM. Walaupun ia menangkap hierarki elemen secara berkesan, ia tidak mempunyai ketepatan yang diperlukan untuk pengenalan unik.

Masalahnya

Laluan CSS untuk elemen penambat ke-123 yang fungsi anda kembalikan ialah:

html > body > div#div-id > div.site > div.clearfix > ul.choices > li
Salin selepas log masuk

Walau bagaimanapun, untuk mengenal pasti sepenuhnya elemen, ia harus memasukkan pemilih :nth-child:

html > body > div#div-id > div.site:nth-child(1) > div.clearfix > ul.choices > li:nth-child(5)
Salin selepas log masuk

Penyelesaian

Untuk mendapatkan laluan CSS yang tepat, laksanakan peningkatan berikut dalam fungsi anda:

<code class="javascript">var cssPath = function(el) {
    if (!(el instanceof Element)) 
        return;
    var path = [];
    while (el.nodeType === Node.ELEMENT_NODE) {
        var selector = el.nodeName.toLowerCase();
        if (el.id) {
            selector += '#' + el.id;
            path.unshift(selector);
            break;
        } else {
            var sib = el, nth = 1;
            while (sib = sib.previousElementSibling) {
                if (sib.nodeName.toLowerCase() == selector)
                   nth++;
            }
            if (nth != 1)
                selector += ":nth-of-type("+nth+")";
        }
        path.unshift(selector);
        el = el.parentNode;
    }
    return path.join(" > ");
 };</code>
Salin selepas log masuk

Fungsi yang dipertingkatkan ini:

  • Mengendalikan nod bukan elemen: Mencegah pramatang penamatan gelung apabila menemui nod bukan elemen.
  • Mengutamakan pemilih ID: Mengenal pasti nenek moyang dengan ID untuk meningkatkan kecekapan laluan.
  • Menggunakan jenis ke-n: Meningkatkan kebolehbacaan dan keunikan pemilih.

Dengan menggabungkan pengubahsuaian ini, anda dengan yakin boleh menjana laluan CSS tepat yang mewakili hierarki dan kedudukan elemen DOM dengan tepat.

Atas ialah kandungan terperinci Cara Menjana Laluan CSS Tepat daripada Elemen DOM: Mengapa :nth-child Penting?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!