jQuery的选择器原理
2018-03-18 16:33
387 查看
建立一个$函数,通过传元素的名称前缀来判断的选取的元素类型,名称来选取元素,并进行相应的操作,如改变属性,元素内容,以及css样式
function $(selected){
//alert(selected);
//获取要得到对象的标识
var firstChar = selected.substr(0,1);
//标识后面的参数
var sel =selected.substr(1);
var obj =[];
switch(firstChar){
//获取id对象
case '#':
obj[0] = document.getElementById(sel);
break;
//获取class对象
case '.':
obj = document.getElementsByClassName(sel);
//console.log(obj);
break;
//获取标签对象
default:
obj = document.getElementsByTagName(selected);
}
//可以赋予对象一些方法
//同传递过来的值将css修改掉
obj.css =function(key,value){
if(value == undefined){
return obj[0].style[key];
}else{
for(var i=0;i<obj.length;i++){
obj[i].style[key] = value;
}
}
//保证连贯操作
return this;
}
//我们要处理html方法 将外面传递过来的值修改掉 innerHTML
obj.html =function(key){
if(key == undefined){
return obj[0].innerHTML;
}else{
for(var i = 0;i<obj.length;i++){
obj[i].innerHTML =key;
}
}
return this;
}
//用来专门添加属性
obj.attr = function(key,value){
if(value == undefined){
return obj[0][key];
}else{
for(var i = 0; i<obj.length;i++){
obj[i][key]=value;
}
}
return this;
}
//必须返回一个对象
return obj;
}
function $(selected){
//alert(selected);
//获取要得到对象的标识
var firstChar = selected.substr(0,1);
//标识后面的参数
var sel =selected.substr(1);
var obj =[];
switch(firstChar){
//获取id对象
case '#':
obj[0] = document.getElementById(sel);
break;
//获取class对象
case '.':
obj = document.getElementsByClassName(sel);
//console.log(obj);
break;
//获取标签对象
default:
obj = document.getElementsByTagName(selected);
}
//可以赋予对象一些方法
//同传递过来的值将css修改掉
obj.css =function(key,value){
if(value == undefined){
return obj[0].style[key];
}else{
for(var i=0;i<obj.length;i++){
obj[i].style[key] = value;
}
}
//保证连贯操作
return this;
}
//我们要处理html方法 将外面传递过来的值修改掉 innerHTML
obj.html =function(key){
if(key == undefined){
return obj[0].innerHTML;
}else{
for(var i = 0;i<obj.length;i++){
obj[i].innerHTML =key;
}
}
return this;
}
//用来专门添加属性
obj.attr = function(key,value){
if(value == undefined){
return obj[0][key];
}else{
for(var i = 0; i<obj.length;i++){
obj[i][key]=value;
}
}
return this;
}
//必须返回一个对象
return obj;
}
相关文章推荐
- 【前端】jQuery选择器$()的实现原理
- JQuery选择器工作原理
- 详解jquery选择器的原理
- Jquery选择器 $实现原理
- 关于jquery的选择器原理
- jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——编译原理
- jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——编译原理
- Jquery选择器 $实现原理
- jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——编译原理续(伪类选择器“PSEUDO”和子伪类选择器"CHILD"原子选择器详解)
- jquery选择器的实现原理
- jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——编译原理续(伪类分割器setMatcher)
- jquery选择器原理介绍($()使用方法)
- JQuery选择器工作原理
- JQuery - Sizzle选择器引擎原理分析
- jquery选择器原理介绍($()使用方法)
- Jquery选择器----$实现原理
- jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——编译原理续(伪类选择器“PSEUDO”和子伪类选择器"CHILD"原子选择器详解)
- jquery 中多条件选择器,相对选择器,层次选择器的区别
- jquery可见性过滤选择器
- jquery选择器空格与大于号、加号与波浪号的区别