Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > fungsi penggantian makro jquery

fungsi penggantian makro jquery

WBOY
Lepaskan: 2023-05-28 09:34:37
asal
476 orang telah melayarinya

Fungsi penggantian makro jQuery: Bagaimana untuk memudahkan kod dan meningkatkan kecekapan?

Dalam pembangunan bahagian hadapan, kita selalunya perlu mengendalikan DOM, gaya, acara, dsb., dan halaman yang berbeza mungkin mempunyai berbilang elemen serupa yang perlu diproses dalam kes ini, kod yang serupa perlu ditulis , yang bukan sahaja membuang masa, tetapi Dan ia tidak mudah untuk mengekalkan. Untuk menangani masalah ini, jQuery menyediakan fungsi penggantian makro, yang membolehkan kami memudahkan kod dan meningkatkan kecekapan.

1. Apakah fungsi penggantian makro?

Penggantian Makro ialah pembantu fungsi yang sangat baik dalam jQuery Ia membolehkan kami menyimpan beberapa blok kod dengan mudah dan kemudian menggantikannya di lokasi yang ditentukan apabila diperlukan. Ini bukan sahaja mengekalkan kebolehgunaan semula kod, tetapi juga menjadikan kod kami lebih mudah dibaca dan difahami.

2. Bagaimanakah cara menggunakan makro untuk menggantikan fungsi?

Fungsi penggantian makro jQuery terutamanya merangkumi dua kaedah: $.macro dan $.processTemplate. Antaranya, $.macro digunakan untuk menentukan templat, dan $.processTemplate digunakan untuk memproses templat.

Sintaks asas $.macro:

$.macro(nama, rentetan)

Antaranya, nama mewakili nama templat dan rentetan mewakili kandungan templat (boleh berupa sebarang Rentetan, termasuk teg HTML, kod JavaScript, dsb.).

Sebagai contoh, kami mentakrifkan templat bernama "myTemplate", kandungannya ialah sekeping kod HTML:

$.macro("myTemplate", "<div class='item'><h2>{title}</h2><p>{description}</p></div>");
Salin selepas log masuk

Antaranya, {title} dan {description} ialah pemegang tempat, yang menunjukkan keperluan Kandungan untuk menggantikan.

Seterusnya, kita boleh menggunakan kaedah $.processTemplate untuk memproses templat dan menggantikan pemegang tempat:

var data = {title: "这是一个标题", description: "这是一些描述信息"};

var html = $.processTemplate("{myTemplate}", data);

$("#content").append(html);
Salin selepas log masuk

Nota: Nama templat di sini mesti disertakan dalam sepasang pendakap kerinting, seperti " {myTemplate}".

Selepas melaksanakan kod di atas, sekeping kod HTML akan ditambahkan pada elemen #content dengan kandungan berikut:

<div class="item">
    <h2>这是一个标题</h2>
    <p>这是一些描述信息</p>
</div>
Salin selepas log masuk

3. Aplikasi lanjutan fungsi penggantian makro

  1. Templat Bersarang yang Disokong

Fungsi penggantian makro juga menyokong templat bersarang, yang boleh menyusun templat lain dalam satu templat, serupa dengan mod gabungan. Pelaksanaannya serupa dengan templat biasa, cuma gunakan pendakap kerinting bersarang dalam templat.

Sebagai contoh, kami mentakrifkan templat besar yang terdiri daripada dua templat, satu templat digunakan untuk memaparkan tajuk dan kandungan berita, dan templat lain digunakan untuk memaparkan ulasan:

$.macro("item", "<div class='item'><h2>{title}</h2><p>{content}</p>{comments}</div>");

$.macro("comment", "<div class='comment'>{content}</div>");
Salin selepas log masuk

Ambil perhatian, {comments} di sini ialah pemegang tempat untuk templat ulasan bersarang.

Seterusnya, kami menggunakan data simulasi untuk menjana satu set berita:

var news = [
    {title: "标题1", content: "内容1", comments: [
        {content: "评论1.1"},
        {content: "评论1.2"}
    ]},
    {title: "标题2", content: "内容2", comments: [
        {content: "评论2.1"},
        {content: "评论2.2"}
    ]}
];
Salin selepas log masuk

Akhir sekali, kami mengulangi berita dan menggunakan kaedah $.processTemplate untuk menjana kod HTML mengikut templat yang ditetapkan dan masukkan ke dalam Dalam halaman:

for (var i = 0; i < news.length; i++) {
    var newsItem = news[i];
    var html = $.processTemplate("{item}", newsItem, function (key, value) {
        if (key == "comments") {
            var commentHtml = "";
            for (var j = 0; j < value.length; j++) {
                var comment = value[j];
                commentHtml += $.processTemplate("{comment}", comment);
            }
            return commentHtml;
        }
        return value;
    });
    $("#news").append(html);
}
Salin selepas log masuk

Ambil perhatian bahawa parameter ketiga di sini ialah fungsi panggil balik yang mengendalikan ruang letak {comments} dalam templat bersarang dan menggantikannya dengan kod HTML yang dijana oleh templat ulasan.

Selepas melaksanakan kod di atas, kod HTML berikut akan dijana dalam elemen #news:

<div class="item">
    <h2>标题1</h2>
    <p>内容1</p>
    <div class="comment">评论1.1</div>
    <div class="comment">评论1.2</div>
</div>
<div class="item">
    <h2>标题2</h2>
    <p>内容2</p>
    <div class="comment">评论2.1</div>
    <div class="comment">评论2.2</div>
</div>
Salin selepas log masuk
  1. Menyokong gelung

Fungsi penggantian makro juga menyokong penjanaan kod HTML yang kompleks, seperti senarai yang mengandungi gelung. Ini boleh dicapai dengan menggunakan ruang letak {loop} dalam templat.

Sebagai contoh, kami mentakrifkan templat bernama "senarai" untuk menjana senarai yang mengandungi gelung:

$.macro("list", "<ul>{loop}</ul>");
Salin selepas log masuk

Kemudian, kami boleh mentakrifkan templat bernama "item" dengan Untuk menjana item dalam senarai:

$.macro("item", "<li>{text}</li>");
Salin selepas log masuk

Seterusnya, kita mentakrifkan tatasusunan yang mengandungi data item senarai yang akan dijana:

var data = [
    { text: "列表项1" },
    { text: "列表项2" },
    { text: "列表项3" }
];
Salin selepas log masuk

Akhir sekali, kita boleh menulis gelung mengikut kod berikut untuk menjana senarai:

var html = $.processTemplate("{list}", data, function (key, value) {
        if (key == "loop") {
            var loopHtml = "";
            for (var i = 0; i < value.length; i++) {
                loopHtml += $.processTemplate("{item}", value[i]);
            }
            return loopHtml;
        }
        return value;
    });

$("#content").append(html);
Salin selepas log masuk

Fungsi panggil balik di sini adalah serupa dengan contoh sebelumnya dan digunakan untuk mengendalikan pemegang tempat {loop}, melelar melalui tatasusunan dan menjana kod HTML item senarai berbilang.

Selepas melaksanakan kod di atas, sekeping kod HTML akan ditambahkan pada elemen #content dengan kandungan berikut:

<ul>
    <li>列表项1</li>
    <li>列表项2</li>
    <li>列表项3</li>
</ul>
Salin selepas log masuk

4. Ringkasan

Fungsi penggantian makro sangat praktikal dalam Fungsi jQuery, ia membolehkan kami mengendalikan DOM, gaya, acara, dll. dengan mudah, mengelakkan pertindihan kod dan meningkatkan kecekapan pembangunan. Melalui pengenalan dan contoh demonstrasi artikel ini, saya percaya bahawa pembaca mempunyai pemahaman yang lebih mendalam tentang fungsi penggantian makro dan boleh menggunakannya secara fleksibel dalam pembangunan sebenar. Sudah tentu, terdapat aplikasi yang lebih maju bagi fungsi penggantian makro, dan pembaca dialu-alukan untuk terus mengkaji dan menyelidik secara mendalam.

Atas ialah kandungan terperinci fungsi penggantian makro jquery. 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