js库开发
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="base.css"/>
<script src="sizzle.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="ids" >
<span>12</span>
<div class="a">11</div>
<div class="a">12</div>
<div class="a">13</div>
</div>
<div>12</div>
<p class="a">3</p>
<p class="a">3</p>
<p>3</p>
<script>
var Base=function(){
this.elements=[];
}
var myquery=function(){
return new Base();
}
//id
Base.prototype.getid=function(id){
var thisid=document.getElementById(id);
this.elements.push(thisid)
return this;
};
//tag
Base.prototype.gettags=function(tags){
var tag=document.getElementsByTagName(tags);
for(var i=0;i<tag.length;i++)
{
this.elements.push(tag[i])
}
return this;
}
//css
Base.prototype.css=function(attr,value)
{
for(var i=0;i<this.elements.length;i++)
{
if(arguments.length==1)
{
if(typeof window.getComputedStyle!=undefined)
{
//复合属性值无从获取在ie和火狐里面
return document.defaultView.getComputedStyle(this.elements[i],null)[attr];
}
else if(typeof this.elements[i].currentStyle!=undefined)
{
//console.log(this.elements[i].currentStyle[attr])
return this.elements[i].currentStyle[attr];
}
}
else
{
this.elements[i].style[attr]=value;
}
}
return this;
}
//html
Base.prototype.html=function(str){
for(var i=0;i<this.elements.length;i++)
{
if(arguments.length==0)
{
return this.elements[i].innerHTML;
}
else
{
this.elements[i].innerHTML=str;
}
}
return this;
}
//class
Base.prototype.getclass=function(attr,area){
//Sizzle(".a")[1]
var param=null;
if(arguments.length==2)
{
for(var i=0;i<Sizzle(area+" ."+attr).length;i++)
{
this.elements.push(Sizzle(area+" ."+attr)[i]);
}
}
else
{
var classes=document.getElementsByTagName("*");
for(var i=0;i<classes.length;i++)
{
if(classes[i].className==attr)
{
//console.log(classes[i])
this.elements.push(classes[i]);
}
}
}
return this;
}
//eq方法
Base.prototype.eq=function(num){
var tempelement=this.elements[num];
this.elements=[];
this.elements[0]=tempelement;
return this;
}
//addclass
console.log(myquery().getclass("a","#ids").addclass("b").removeclass("b"))
//console.log(Sizzle("#ids .a")[2].innerHTML)
</script>
</body>
</html>
js库开发的更多相关文章
- js库开发--参数传递及方法修改
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
- js库编写的环境和准备工作
在编写一个js库之前需要准备许多基础知识. 本人在编写之前主要参考了visjs和百度的echarts这两个库的部分内容,这之中提取出几个要点如下: 1.如何整理代码结构,使模块与模块分开又不至于出现调 ...
- <WEB>平板_手机开发_13 个处理触摸事件和多点触摸的JS 库
触摸屏是现在所有智能手机的标配,还包括各种平板设备,而且很多桌面也慢慢在开始支持触摸操作.要开发支持触摸屏设备的 Web 应用,我们需要借助浏览器的触摸事件来实线. 下图是各种触摸事件说明: 本文我们 ...
- ios实例开发精品文章推荐(8.12)11个处理触摸事件和多点触摸的JS库
11个处理触摸事件和多点触摸的JS库 触摸屏是现在所有智能手机的标配,还包括各种平板设备,而且很多桌面也慢慢在开始支持触摸操作.要开发支持触摸屏设备的Web应用,我们需要借助浏览器的触摸事件来实现. ...
- 使用模块化工具打包自己开发的JS库(webpack/rollup)对比总结
打包JS库demo项目地址:https://github.com/BothEyes1993/bes-jstools 背景 最近有个需求,需要为小程序写一个SDK,监控小程序的后台接口调用和页面报错(类 ...
- JS模块化开发:使用SeaJs高效构建页面
一.扯淡部分 很久很久以前,也就是刚开始接触前端的那会儿,脑袋里压根没有什么架构.重构.性能这些概念,天真地以为前端===好看的页面,甚至把js都划分到除了用来写一些美美的特效别无它用的阴暗角落里,就 ...
- 【转载】写一个js库需要怎样的知识储备和技术程度?
作者:小爝链接:https://www.zhihu.com/question/30274750/answer/118846177来源:知乎著作权归作者所有,转载请联系作者获得授权. 1,如何编写健壮的 ...
- js模块开发(一)
现在嵌入页面里面的javascript代码越来越复杂,于是可能依赖也越来越严重,使用别人开发的js也越来越多,于是在理想情况下,我们只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. 于是j ...
- jQuery与其他JS库冲突解决
实际开发中遇到JQuery与其他js库起冲突 究其原因,是它们的全局对象定义冲突了,特别是变量”$”, 可重载$函数.使用jQuery.noConflict()就可以通过重载$函数 例:项目中应用的 ...
随机推荐
- linux 系统下配置安装 java jdk 图文流程
先查看一下系统版本,本例采用的操作系统是CentOS 6.5: 如果你是初装之后的操作系统,那么有可能wget这个组件是不存在的,所以你要安装一下它,这样才可以让你从网上down下你要的安装包: 上面 ...
- gdalwarp:变形工具
1 gdalwarp:变形工具.包括投影.拼接.及相关的变形功能.此工具功能强大,但效率不高,使用时注意 gdalwarp [--help-general] [--formats] [-s_s ...
- ASP.NET MVC 部分视图(转)
[部分视图] ASP.NET MVC 里的部分视图,相当于 Web Form 里的 User Control.我们的页面往往会有许多重用的地方,可以进行封装重用.使用 部分视图 : 1. 可以简写代 ...
- Sqlserver 系列(一):常用函数
(1)聚合函数 sum,max,min,avg,count (2)日期函数 datediff ,dateadd, datepart,getdate,month,day (3)字符串函数 ltrim,r ...
- OD调试3--reverseMe
OD调试3:reverseMe.exe(reverse就是逆向的意思) 运行效果图: 1关于寄存器 寄存器就好比是CPU身上的口袋,方便CPU随时从里边拿出需要的东西来使用.今天的程序中涉及到九个寄存 ...
- [poj2449]Remmarguts' Date(spfa+A*)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Remmarguts' Date Time Limit: 4000MS Mem ...
- MYSQL开发技巧之行转列和列转行
行转列--两种方法第一种方法:行转列我们通常是使用交叉连接和子查询的方式做到,比如下面的例子,查询每个name的对应id的和mysql> select * from user; +----+-- ...
- sublime快捷键收藏
快速查找(ctrl + P)输入@+函数名可以快速找到函数.输入#+文本可以快速进行文件内文本匹配.3. 多行游标功能(ctrl + D,非常实用)如何将文件中的某个单词更改为另一个?方法一:利用查找 ...
- postgresql数据库导入导出
在shell中用命令pg_dump将数据库data1导出到一个文件中 pg_dump -d data1 -f test.txt 或者 pg_dump -d data1 > test.sql 然后 ...
- 蜘蛛牌(hdu 1584 DFS)
蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...