模板字符串拼接导入data数据

来源:2-4 编程练习

weixin_慕的地5241954

2019-10-15 16:26:18

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>模版字符串</title>
</head>
<style>
    div{
        width: 216px;
    }
    .tit{
        margin: 0;
        text-align: center;
    }
    table{
        border: 1px solid black;
    }
    table td {
        border: 1px solid black;
    }
</style>
<body>
    <!-- <div>
        <p class="tit">前端</p> 
        <table>
            <tr>
                <td>布局基础</td>
                <td>1</td>
                <td>2</td>
            </tr>
            <tr>
                <td>biaoti</td>
                <td>javascript</td>
                <td>jquery</td>
            </tr>
            <tr>
                <td>biaoti</td>
                <td>1</td>
                <td>2</td>
            </tr>
        </table> 
    </div> -->
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
    <script type="text/javascript">
    const tmpl = function() {
        return {
            title: "前端",
            data: [{
                title: '布局基础',
                date: ["html", "css"]
            }, {
                title: '网页特效',
                date: ["javascript", "jquery"]
            }, {
                title: '框架',
                date: ["bootstrap", "vue"]
            }]
        }
    }
    // 补充代码
    let getdata = tmpl();
    // let {title: header, data: [ { title, date:[ td1, td2] } ] } = getdata;
    // console.log(header, title, td1, td2)
    let {title: header, data } = getdata;
    // let [content1, content2, content3] = data;
    // console.log(content1.date[1])
    let arr = [];
    let str = `<p class="tit">${header}</p><table>`;
    for(let k in data){
        // console.log(data[k].date[1])
        str += `<tr>
                <td>${data[k].title}</td>
                <td>${data[k].date[0]}</td>
                <td>${data[k].date[1]}</td>
                </tr>`
        // console.log(str)
    }
    // let ele = document.createElement('table');
    // console.log(typeof ele)
    str = str + '</table>';
    arr.push(str);

    let ele = document.createElement('div');

    ele.innerHTML = (arr.join(''));
    document.body.appendChild(ele);
    
    </script>
</body>
</html>

检查一下代码,麻烦再优化一下代码。

我这种方式和要求的方式不一样,用要求的方式不知道样式该怎么设置,想问一下这两种哪种方式好一点?

写回答

3回答

好帮手慕星星

2019-10-16

同学你好, 

1、style属性设置的是css样式,也就是在style标签中写的样式。例如:

http://img.mukewang.com/climg/5da676b409c4d08411810308.jpg

2、不通过style直接设置,需要是元素固有的属性。例如table标签:

http://img.mukewang.com/climg/5da676f909e561c407090305.jpg

有border属性,所以使用js进行设置的时候,就可以不用style属性了。

总结:简单理解就是元素自身是否有这个属性,如果有可以直接使用属性设置,如果没有通过style样式进行设置。

自己可以再理解下,祝学习愉快!

0

好帮手慕星星

2019-10-15

你好,可以不用css样式哦,只设置border属性就可以:

http://img.mukewang.com/climg/5da59485096af45b03920354.jpg

http://img.mukewang.com/climg/5da5948509ebb6f305030119.jpg

自己试一下。

0
heixin_慕的地5241954
h 改写好了,style属性是什么时候用,为什么只设置border属性就可以了,能介绍他们两个的用法和区别吗?
h019-10-15
共1条回复

好帮手慕星星

2019-10-15

同学你好,

代码实现是可以的,很棒哦!

建议按照要求来会简单一下哦,如下:

http://img.mukewang.com/climg/5da585ed099ef1c908490673.jpg

这样就不用再创建一个div了。其实哪种方式,实现效果了就是好的,自己能够写出来就可以。

祝学习愉快!欢迎采纳~

0
heixin_慕的地5241954
h 我caption的用法忘记了,还有这种写法的CSS样式能贴出来看一下吗?
h019-10-15
共1条回复

0 学习 · 10739 问题

查看课程