[size=large]周末在家里写程序,要用js将json格式的数据{name:'游戏1',url:'http://www.zaobao.com',imgUrl:'img/confirm.gif'},转化成以下html
<li>
<a href="http://www.zaobao.com">
<img src="img/confirm.gif">
<span>游戏1</span>
</a>
</li>
用dom实现
var li = document.createElement("li")
var a = document.createElement("a");
a.href = pojo.url;
var img = document.createElement("img");
img.src = pojo.imgUrl;
var span = document.createElement("span");
span.innerHTML = pojo.name;
a.appendChild(img);
a.appendChild(span);
li.appendChild(a);
return li;
尼玛啊,才4个标签,代码居然需要11行。是可忍,叔叔也不可忍。用拼凑html的方法,虽然代码简单一点,但是html复杂了,也很难维护。
想写个类简化一下。思路是搞个html dsl(面向领域的语言)出来。于是写了个tag类,刚才那段代码就变成了
var li = new Tag("li"); //构建一个li标签
var a = li.a().attr("href",pojo.url); //在li中方一个a标签 ,href是pojo的url
a.img().attr("src",pojo.imgUrl); //在a标签中放img
a.span(pojo.name); //在a标签中放span
return li.toDom(); //返回li标签的dom对象
定义一个div就可以这样写
var tag = new Tag("div");
tag.html("google");
tag.style("color","red")
document.getElementById("d1").innerHTML = tag.toHtml();
定义ul下有3个li
var ul = new Tag("ul");
ul.li('aaa');
ul.li(2).style('color','red');
ul.li(3);
document.getElementById("d2").innerHTML = ul.toHtml();
document.getElementById("d3").appendChild(ul.toDom());
定义一个5行的table变成了
var table = new Tag("table");
for(var i=1;i<5;i++){
var tr = table.tr();
tr._td(1+i)
._td(2+i+"a")
._td(3+i)
._td(4+i)
._td(5+i);
}
document.getElementById("d6").innerHTML = table.toHtml();
document.getElementById("d7").appendChild(table.toDom());
写完以后,自我感觉十分良好,比从头构建dom或者拼html强多了。唯一不知道的是这个小轮子前人有没有写过?
代码见附件
[/size]
分享到:
相关推荐
appium的设计哲学是这样的: ...3,不要为了移动端的自动化测试而重新发明轮子,重新写一套惊天动地的api;也就是说webdriver协议里的api已经够好了,拿来改进一下就可以了; 4,移动端自动化测试应该是开源的;
python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: #import itertools ...
因此想实现只要运行一个工具就能尽可能多的子域名,并且能方便自由定制的顺手工具,于是浏览对比了如下几款工具,根据他们的优缺点总结出一份个人合适的子域名工具需求:1.子域名2.wy域名3.提莫4.敲门5.subdomain36....
画图——这项古老而精细的做法,是一代代产品狗们得以传承的立足之本...本文将介绍一些产品经理快速找到顺手图片资源的小技巧,当然,这些技巧也可供UI射鸡湿参考。另外开发人员如果也搞一搞,下次资源图还没出来时你就
顺手点个Star,支持我们更好发展并持续维护此项目,感谢! 简介 HoServer是基于Node.js开发开箱即用的后台服务和管理平台脚手架,可视化对象定义,一行代码实现增删改查所有接口,内置用户,权限等基本功能。基于...
梨管理员认为|||项目简介Pear Admin Think基于thinkphp6的快速开发平台,通过简单的代码生成功能,可以快速构建你的功能业务,努力成为最顺手的轮子。环境要求PHP> = 7.1.0 MySQL> = 5.7.0(需支持innodb引擎) ...