script中 type="text/html" 有哪些作用

目录

1、type="text/html" 的作用

2、实际的应用(jsp页面中循环出一个table表格)

3、完整的代码

内容

1、作用

  在script标签中定义一个可以被JS调用的代码块,但是该代码又不会再页面上显示。

2、实际的应用

<script type="text/html" id="textHtmlDemo">
            <tr id="textHtmlDemo{id}" data-id="{id}" class="ember-view variant-list-item table-row clear">
                <td id="sequence" class="" data-id="{id}">
                    {sequence}
                </td>
                <td id="name" class="" data-id="{id}">
                    {name}
                </td>
                <td id="sex" class="" data-id="{id}">
                    {sex}
                </td>
                <td id="address" class="" data-id="{id}">
                    {address}
                </td>
                <td id="school" class="" data-id="{id}">
                    {school}
                </td>
                <td class="table-cell" id="operation">
                    <a class="add" data-id="{id}" href="javascript:;" >添加</a>
                    <a class="delete" data-id="{id}" href="javascript:;" >删除</a>
                </td>
            </tr>
        </script>

上面的代码是在script标签中定义的可以被JavaScript代码调用的代码块,但是不会在页面中显示。我将其制作成tbody中某一行tr的模板,通过数据的不断循环进行渲染,最后直接插入到tbody中。

function doTemplate(str, o, regexp) {
                return str.replace(regexp || /\\?\{([^{{}}]+)\}/g, function(match,
                    name) {
                    return (o[name] === undefined) ? ‘‘ : o[name];
                });
            }

这段JavaScript代码的主要作用是将id 为textHtmlDemo的模板中被{}包裹的变量替换为实际的数据。

3、代码示例(完整版)

<!doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>text/html构建动态表格</title>
        <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" />
    </head>
    <body>
        <div class="text-html-demo">
            <div class="container">
                <div class="row">
                    <table class="table table-hover">
                        <thead>
                            <tr >
                                <th>序号</th>
                                <th>姓名</th>
                                <th>性别</th>
                                <th>出生地</th>
                                <th>学校</th>
                                <th>操作</th>
                            </tr>
                        </thead>
                        <tbody class="text_demo_tbody"></tbody>
                    </table>
                </div>
            </div>
        </div>
        <script src="http://code.jquery.com/jquery.js"></script>
        <script type="text/javascript" src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
        <script type="text/javascript">
            var data={
                resultList:[
                {"id":111,"sequence":1,"name":"Cassie","sex":"Female","address":"WH","school":"WD"},
                {"id":222,"sequence":2,"name":"Cassie2","sex":"Male","address":"WH","school":"WD"},
                {"id":333,"sequence":3,"name":"Cassie3","sex":"Female","address":"WH","school":"WD"},
                {"id":444,"sequence":4,"name":"Cassie4","sex":"Male","address":"WH","school":"WD"},
                {"id":555,"sequence":5,"name":"Cassie5","sex":"Female","address":"WH","school":"WD"}
                ]
            }
            $(document).ready(function() {
                /*加载出table的表格数据*/
                loadData();
            });

            /*动态填充表格*/
            function loadData(){
                /*清空tbody中的数据*/
                $(‘.text_demo_tbody‘).empty();
                var tmp = [];
                var template = $(‘#textHtmlDemo‘).html();
                for (i = 0; i < data.resultList.length; i++) {
                    var item = data.resultList[i];
                    var tpldata = {
                        "sequence": item.sequence ? item.sequence : "",
                        "name": item.name ? item.name : "",
                        "sex": item.sex ? item.sex : "",
                        "address": item.address ? item.address : "",
                        "school": item.name ? item.name : "",
                        "id": item.id ? item.id : ""
                    };
                    var content = doTemplate(template, tpldata);
                    tmp.push(content);
                }
                var html = tmp.join(‘‘);
                $(‘.text_demo_tbody‘).prepend(html);
            }

            /*将{}包裹的变量替换成实际的数据*/
            function doTemplate(str, o, regexp) {
                return str.replace(regexp || /\\?\{([^{{}}]+)\}/g, function(match,
                    name) {
                    return (o[name] === undefined) ? ‘‘ : o[name];
                });
            }

            /*表格行的添加事件*/
            $("body").on("click", ".add", function() {
                data.resultList.push({
                    "id":new Date().getTime(),
                    "sequence":"sequence",
                    "name":"name",
                    "sex":"sex",
                    "address":"address",
                    "school":"school"
                });
                loadData();
            });

            /*表格行的删除事件*/
            $("body").on("click", ".delete", function() {
                /*拿到当前点击行的ID*/
                var currentRowId = $(this).data("id");
                alert($(this).data("id"));
            });
        </script>

        <script type="text/html" id="textHtmlDemo">
            <tr id="textHtmlDemo{id}" data-id="{id}" class="ember-view variant-list-item table-row clear">
                <td id="sequence" class="" data-id="{id}">
                    {sequence}
                </td>
                <td id="name" class="" data-id="{id}">
                    {name}
                </td>
                <td id="sex" class="" data-id="{id}">
                    {sex}
                </td>
                <td id="address" class="" data-id="{id}">
                    {address}
                </td>
                <td id="school" class="" data-id="{id}">
                    {school}
                </td>
                <td class="table-cell" id="operation">
                    <a class="add" data-id="{id}" href="javascript:;" >添加</a>
                    <a class="delete" data-id="{id}" href="javascript:;" >删除</a>
                </td>
            </tr>
        </script>
    </body>
</html>
时间: 2024-08-28 05:08:21

script中 type="text/html" 有哪些作用的相关文章

给 input 中 type=&quot;text&quot; 设置CSS样式

input[type="text"], input[type="password"] {    border: 1px solid #ccc;    padding: 2px;    font-size: 1.2em;    color: #444;    width: 200px;}

&lt;script type=&quot;text/template&quot;&gt;是干什么的,为什么要把html写在js中? 这是什么编程语言风格,都能这样用吗?

这一段存放了一个模板.在js里面,经常需要使用js往页面中插入html内容.比如这样: var number = 123; $('#d').append('<div class="t">'+number+'</div>') 如果html很短还好说,但是遇到描述里面的这么大段,直接用字符串存储会很困难,因为不光要处理单引号,还需要很多「+」号把字符串一个个连接起来,十分的不方便.给<script>设置type="text/template&q

&lt;script type=&quot;text/template&quot;&gt;

<script type="text/template"> 给<script>设置type="text/template",标签里面的内容不会被执行,也不会显示在页面上,但是可以在另一个script里面通过获取,然后再通过相关的模板工具进行处理,插入到页面中.这样就把大段的HTML操作从js里面分离开了 <div></div> <script type="text/template" id=&

script标签中type为&lt;script type=&quot;text/x-template&quot;&gt;是个啥

写过一点前端的都会碰到需要使用JS字符串拼接HTML元素然后append到页面DOM树上的情况,一般的写法都是使用+号以字符串的形式拼接,如果是短点的还好,如果很长很长的话就会拼接到令人崩溃了. 比如有的时候需要使用弹出框的时候手动使用字符串拼接起来各种数据再渲染出来(这种写法太恶心了,简直没有职业道德-). 因为上面的这种写法太恶心人了,但是在前端渲染数据又是一个刚需,这个时候怎么办,想一个办法将JS和HTML分离开来. <script type="text/x-template&quo

区别script中的type=”text/javascript”和language=”Javascript”

内容提要 在制作网页的时候,往往需要在页面中使用客户端能够运行的JS代码,因此,都需要添加引用.JS引用一般有type="text/javascript"和language="Javascript"两种写法,但language这个属性在W3C的HTML标准中,已不再推荐使用. 具体说明 一般情况下,JS引用方式为: 第①种 <script language="Javascript"></script> 第②种 <sc

JQuery获取input type=&quot;text&quot;中的值的各种方式

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JQuery获取文本框的值</title> <meta http-equ

&lt;script language = &quot;javascript&quot;&gt;, &lt;script type = &quot;text/javascript&quot;&gt;和&lt;script language = &quot;application/javascript&quot;&gt;(转)

application/javascript是服务器端处理js文件的mime类型,text/javascript是浏览器处理js的mime类型,后者兼容性更好(虽然application/javascript才是正确写法,由于现在大家都写错的,导致浏览器厂商对写application/javascript兼容性更好).等以后大家都用HTML5的时候,就不需要写这个了.直接<script></script>就OK了! 另外 <script language = "ja

Resource interpreted as Script but transferred with MIME type text/html

在搭建后台的时候,页面突然报错: Resource interpreted as Script but transferred with MIME type text/html 导致页面Js效果错乱, Google 一番之后,大部分都是修改注册表之类,而我的注册表不需要修改. 这是之前找的文章: http://stackoverflow.com/questions/12003107/resource-interpreted-as-script-but-transferred-with-mime-

让script的type属性等于text/html

type属性为text/html的时候,<script>片断中定义一个被JS调用的代码,代码不会在页面上显示 <script id="commentTemplate" type="text/html"> <li> <div class="photo"> <a href="#"> <img src="[UserImg]" style="