黑马程序员技术交流社区

标题: 哈尔滨校区--技术交流帖--Dom元素的获取 [打印本页]

作者: 屈璐璐    时间: 2016-1-24 13:19
标题: 哈尔滨校区--技术交流帖--Dom元素的获取
document.getElementById();如果有许多个要获取的元素节点,就在sanfu.js里面写一个方法,以后只要调用这个方法就可以获取到元素节点。


源代码:
// 定义一个对象
/**
@param: selector , 通过不同的选择器,进行元素的获取
可以输入的值: id, class, tagName, ......
  判断开头的字母
#: id ,获取id
.: xxxx
*/
var $ = function(selector){
//得到开头
// 字符串没有一个方法 , 以。。。开头
// 方法 一
// if(selector.substring(0,1) == "#"){
// var caption = "#";
// selector = selector.substring(1);
// }
// 判断 字符串以xxx开头
if(!selector.indexOf("#")){

  var caption = "#";
  selector = selector.substring(1);
}
// var caption =
switch(caption){
  case "#": return document.getElementById(selector);
}
};
// 函数的作用: 把重复,进行封装
$.each = function(strArray,fn){
for(var i=0;i<strArray.length;i++){
  /*
  (function(i,perValue){
   //......
  })(i,strArray[i]);
  */
  fn(i,strArray[i]);
}
};
// 创建一个新的方法 ,完成 ,文本节点的过滤
// @param parentNode: 父节点 , 节点数组,需要把里面文本节点去掉
// @result: 返回,需要的元素节点
$.children = function(parentNode){
var resultArray = [];
var list = parentNode.childNodes;
//
$.each(list,function(i,perValue){
  if(perValue.nodeType != 3){
   resultArray.push(perValue);
  }
});
return resultArray;
};
//返回文本内容
// 解决 各家浏览器的不同
$.innerText = function(domObj){
// 或运算
return domObj.innerText || domObj.textContent;
};
// 自定义一个窗口居中操作
// @param url: 要打开的url
// @param width: 要打开的新窗口的宽度
// @param height: 要打开的新窗口的高度
$.centerWin = function(url,width,height){
// var features = "width="+width+",height="+height;
var featuresArray = [];
featuresArray.push("width="+width);
featuresArray.push("height="+height);
var top = (window.screen.height-height)/2;
var left = (window.screen.width-width)/2;
featuresArray.push("top="+top);
featuresArray.push("left="+left);
// 把数组 变成 字符串
// 使用 逗号分隔
var features = featuresArray.toString();
window.open(url,'',features);
};







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2