Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使我的css选择器引擎更灵活?_Javascript_Dom_Css Selectors - Fatal编程技术网

Javascript 如何使我的css选择器引擎更灵活?

Javascript 如何使我的css选择器引擎更灵活?,javascript,dom,css-selectors,Javascript,Dom,Css Selectors,我为我的自定义javascript库创建了一个自定义css选择器引擎函数 var catchEl = function(el) { // Catching elements by identifying the first character of a string var firstChar = el[0], actualNode = el.substring(1, el.length), elements, tempElems = []; if (!document.

我为我的自定义javascript库创建了一个自定义css选择器引擎函数

var catchEl = function(el) { // Catching elements by identifying the first character of a string

var firstChar = el[0], 
   actualNode = el.substring(1, el.length),
   elements,
   tempElems = [];

if (!document.querySelectorAll) {
   try{
       if(firstChar === "#") {//So, we can look for ids
          tempElems.push(document.getElementById(actualNode));
       } else if(firstChar === ".") {//or classes
          elements = document.getElementsByClassName(actualNode);
          for(i=0;i<elements.length;i++) tempElems.push(elements[i]);
       } else {//or tags
          elements = document.getElementsByTagName(el);
          for(i=0;i<elements.length;i++) tempElems.push(elements[i]);
       }
   } catch(e) {};
} else {//but before everything we must check if the best function is available
   try{
      elements = document.querySelectorAll(el);
      for(i=0;i<elements.length;i++) tempElems.push(elements[i]);
   } catch(e) {};
}
return tempElems;
}
var catchEl=函数(el){//通过识别字符串的第一个字符来捕获元素
var firstChar=el[0],
实际节点=el.子串(1,el.长度),
元素,
节拍=[];
如果(!document.queryselectoral){
试一试{
如果(firstChar==“#”){//So,我们可以查找ID
push(document.getElementById(actualNode));
}else if(firstChar==”){//or类
elements=document.getElementsByClassName(actualNode);

对于(i=0;iyou应该阅读John Resig的《JavaScript忍者的秘密》一书,他是jquery的创作者,这本书专门指导您创建css选择器引擎。这个问题不属于Stackoverflow,因为它不是一个简单的问答,只有一个答案。在中可能更好。