首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用CSS将JS对象转换为HTML和样式

如何使用CSS将JS对象转换为HTML和样式
EN

Stack Overflow用户
提问于 2014-09-25 20:10:24
回答 2查看 418关注 0票数 0

我正在学习JSON (或JS对象),我正在努力研究如何将上述对象引入HTML并使用CSS对其进行样式设计。

如何选择“firstName”和“lastName”对象来对它们进行样式设计?

这是小提琴:http://jsfiddle.net/frankDraws/5bfzo1q2/25/

代码语言:javascript
复制
var data = { "users":[
            {
                "firstName":"Jack",
                "lastName":"Lewis",
                "startDate": {
                    "month":"January",
                    "day":12,
                    "year":2000
                }
            },
            {
                "firstName":"Raymond",
                "lastName":"Girard",
                "startDate": {
                    "month":"April",
                    "day":28,
                    "year":1994
                }
            },
            {
                "firstName":"Enrique",
                "lastName":"Sosa",
                "startDate": {
                    "month":"October",
                    "day":14,
                    "year":2004
                }
            }
    ]}

    var output="<ul>";
    for (var i in data.users) {
        output+="<li>" + data.users[i].firstName + " " + data.users[i].lastName + " &ndash; " + data.users[i].startDate.month + " " + data.users[i].startDate.day + ", " + data.users[i].startDate.year+ "</li>";
    }
    output+="</ul>";
  
    document.getElementById("writeTo").innerHTML=output;
代码语言:javascript
复制
@import url(http://fonts.googleapis.com/css?family=Roboto);
body {
    background: MediumTurquoise;
    font: normal 17px/1.8em Roboto, Helvetica, sans-serif;
}
div {
    box-shadow: 0 3px 5px darkcyan;
    background: gainsboro;
    border-radius: 5px;
    margin: 30px auto 0;
    max-width: 300px;
    max-height: 200px;
    padding:20px;
    
}
ul {
  margin: 0;
  padding: 0;
}
ul li {
    color: #555;
    list-style:none;
    
}
.firstName :first-child {
    font-weight:bold;
}
代码语言:javascript
复制
<div id="writeTo"></div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-25 20:14:25

不能使用CSS选择JSON。它在DOM上运行。

看上去你没想过。列表项中只有一个文本节点(您使用六个字符串创建了该节点)。

目前,您没有任何CSS可以选择的东西(主要限于元素)来区分不同的数据位,所以您不能。

您需要添加其他标记。

例如:

代码语言:javascript
复制
"<li><span class='firstName'>" + data.users[i].firstName + "</span>"

我强烈建议一次构建每个元素,并对它们进行append,而不是尝试将一个巨大的字符串混在一起。

票数 4
EN

Stack Overflow用户

发布于 2014-09-25 20:17:00

最简单的方法是将名字和姓氏包装在另一个标签中,并将css样式添加到新标记中。

代码语言:javascript
复制
"<li><span>" + data.users[i].firstName + " " + data.users[i].lastName + "</span>"

和css

代码语言:javascript
复制
ul li span:first-child {
      font-weight:bold;
}

http://jsfiddle.net/5bfzo1q2/26/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26047226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档