利用HTML中的<模板>标签的功率来创建动态内容
#javascript #网络开发人员 #developers #webdeveloper

html是网络的骨干,多年来已经发展起来,以满足现代的网络开发需求。 <template>标签允许开发人员定义可以轻松克隆和动态使用的HTML内容,从而可以创建可重复使用的组件。在本文中,我们将探讨使用<template>标签的好处,并通过示例说明。

考虑以下<template>标签示例:

<template id='optionsRowTemplate'>
    <tr>
        <td>
            <input type="text" class="form-control" data-input="english" required>
        </td>
        <td>
            <input type="text" class="form-control" data-input="hindi" required>
        </td>
        <td>
            <input type="checkbox" class="form-control ckb-unset" data-input="is_ans">
        </td>
        <td>
            <a href="javascript:void(0)" class="remove_button remove_option" title="Remove option">
                <img src="<?php echo base_url(); ?>/public/images/remove-icon.png" alt="Remove">
            </a>
        </td>
    </tr>
</template>

脚本:

let option_temp_id = 1;
$("#add_options").click(function () {
        var new_temp_id = 'new-' + option_temp_id;
        createOptionRow(new_temp_id);
        option_temp_id++;
})

function createOptionRow(id, option_en = '', option_hi = '', is_ans = false) {

    const tbody = document.querySelector("#optionsTbody");
    const template = document.querySelector("#optionsRowTemplate");

    // Clone the new row and insert it into the table
    const clone = template.content.cloneNode(true);

    let option_row = clone.querySelector('tr');
    let input_en = clone.querySelector('[data-input="english"]');
    let input_hi = clone.querySelector('[data-input="hindi"]');
    let input_is_ans = clone.querySelector('[data-input="is_ans"]');

    option_row.dataset.optionId = id;

    input_en.name = `options[${id}][option_en]`;
    input_en.value = option_en;

    input_hi.name = `options[${id}][option_hi]`;
    input_hi.value = option_hi;

    input_is_ans.name = `options[${id}][correct_ans]`;
    input_is_ans.checked = is_ans;

    tbody.appendChild(clone);
}

在此示例中,我们有一个用于多语言测验应用程序中的选项行的模板。每一行都包含一个选项的英语和印地语翻译的输入字段,一个将其标记为正确答案的复选框以及删除选项的删除按钮。

现在,让我们深入研究使用<template>标签的好处:

1。可重用性:使用<template>的主要优点是可重用。您只需动态添加新的选项时,就可以简单地克隆模板并修改其内容时,而不是在JavaScript中对整个行结构进行核对编码。这会降低冗余并保持您的代码清洁和可维护。

2。性能:通过事先创建模板并克隆模板,您可以在添加新选项时消除重复的DOM操作的需求。当您使用轻质克隆而不是每次从头开始构建元素时,这会改善性能。

3。可读性和可维护性:在“ HTML”部分中明确定义的模板中,您的JavaScript代码变得更加可读性,重点是动态方面,而不是构造HTML元素。此外,对模板的任何更改都会立即反映在其使用的所有情况下,使维护更加直接。

4。数据绑定:该模板可以通过将数据与其元素结合到动态定制。在提供的示例中,createOptionRow()函数接收数据(option_en,option_hi和is_ans),并相应地填充克隆模板。这启用了数据驱动的网站,其中可以根据用户输入或获取的数据动态更新内容。

5。关注点的分离:使用<template>促进了HTML结构和JavaScript逻辑之间关注的分离。设计人员可以专注于HTML模板,而开发人员处理动态行为。这种劳动分工增强了协作并简化了发展过程。

总而言之,HTML中的<template>标签是创建可重复使用的,动态的内容的强大工具,有助于代码的更好性能,可维护性和可读性。通过利用<template>标签的好处,您可以增强Web应用程序的交互性和用户体验。

因此,下次您发现自己需要创建动态元素时,请考虑使用<template>标签来解锁其全部潜力并简化您的开发过程。愉快的编码!

请记住包括必要的JavaScript库,例如JQuery,如果您打算在项目中使用提供的示例代码。