模拟tquery封装选择器

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
  <title></title>
  <script>
   //测试模拟jquery选择器封装的效果
    window.onload=function(){
        console.log("#myDiv:"+$("#myDiv").size()+"个");
        console.log(".redBorder:"+$(".redBorder").size()+"个");
        console.log("div:"+$("div").size()+"个");
    }

    /*封装的id、class、元素选择器的选择操作*/
    var $=function(selector){
        this.tqObject=new TQObject();
        //id选择器的操作
        if(selector.substring(0,1)=="#"){
            var elem=document.getElementById(selector.substring(1,selector.length));
            tqObject.data.push(elem);//存入tqObject对象的数组中
        }else if(selector.substring(0,1)==‘.‘){
            //类选择器的操作
            var elems=document.getElementsByTagName(‘*‘);//获取页面中的所有元素
            var className=selector.substring(1);//获取className
            var reg=new RegExp("(^|\\s)"+className+"($|\\s)");//定义正则表达式
            for(var i=0;i<elems.length;i++){
                if(reg.test(elems[i].className)){//如果匹配上,则存入tqObject对象的数组中
                    this.tqObject.data.push(elems[i]);
                }
            }
        }else{
            //标签选择器
            var elems=document.getElementsByTagName(selector);
            this.tqObject.data=elems;
        }
        return tqObject;
    }

    /*封装选择器
    *封装TQObject对象,提供一个数组元素,以及若干自定义的操作方法
    *通过封装$("#id|.class|element")来获取元素
    */

    /*封装TQObject对象*/
    var TQObject=function(){
        this.data=[];
    }

    TQObject.prototype={
        //TQObject添加原型方法
        size:function(){//返回data数组的个数
            return this.data.length;
        }
    };
  </script>
 </head>

 <body>
  <div class="redBorder" id="myDiv"></div>
  <div class="redBorder"></div>
  <div class="grayBorder"></div>
 </body>
</html>
时间: 2024-11-05 13:03:45

模拟tquery封装选择器的相关文章

ajx技术解析以及模拟jQuery封装

1.后台处理程序 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String username = request.getParameter("username"); String password = request.getParameter("password&q

原生JS模拟JQuery封装Ajax

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

js框架封装,模拟jQuery封装

模拟jQuery框架,利用原生的js技术,封装一个js框架,以加深对jQuery的常用api的使用和面向对象原理的理解:一:结构部分首先利用闭包,构造一个自执行函数,然后利用选择器函数Sizzle,获取dom元素:其后设置入口函数jQuery,返回一个F的实例:然后对jQuery.prototype进行设置:其后修改F的原型指向jQuery的原型,最后暴露出去两个接口$和jQuery:二:jQuery.fn.extend = jQuery.extend = function(){}通过向jQue

模拟jquery封装简单的Select搜索

var Select=(function () { //自定义 select 方法的思路: //1> 定义一个 support 对象. 将需要使用的方法进行处理, 得到方法的能力 //2> 需要使用的可能有兼容性的方法, 定义一个可以完成该方法的函数来替代. 在函数内部进行兼容处理 //3> 定义 select 函数. 首先看是否支持 qsa, 如果支持直接使用. 如果不支持自己再来实现 //native code判断是否是内置方法 var rnative=/\[native code\

CSS中模拟父元素选择器

很多情况下,我们需要找到父元素,但可惜的是css中并没有这样的一个选择器. 至于原因可以看张鑫旭的如何在CSS中实现父选择器效果这篇文章. 简单来说这个实现并不是真正的父元素选择器,只是利用其它思路来实现相同效果罢了. HTML: <div id="box"> <p>pppppppp</p> <span></span> </div> CSS: div,p{ margin:0; padding:0; } #box{

Cocos2d : 模拟IOS时间选择器

使用引擎:cocos2d-js 3.0 使用语言:javascript 运行平台:手机web --------------------------------------------------------------- 初步分析: 操作过程: 滑动,转动,放缓速度,平衡,停止. 时间选择器的功能分析: 1. 滑动 2. N个选项结果(eg. 0~10) 3. 部分数字可见 4. 根据最近原则,自动平衡到结果item 5. ... --------------------------------

javascript模拟jQuery封装委托事件,兼容IE

1 var $ = function(id){ 2 var dom = document.getElementById(id); 3 return { 4 on:function(eventType,element,callback){ 5 if(document.addEventListener){ 6 dom.addEventListener(eventType,function(e){ 7 var ev = e || window.event; 8 var target = ev.targ

浅谈模拟彩票代码,html,javascript

今天简单介绍一下用html,javascript来模拟双色球彩票选择器. 双色球彩票规则:由6个红球和1个蓝球组成,其中6个红球是从1-33中随机选出的不重复的6个数,从小到大一次排列:蓝球是1-16随机生成的一个数 1.创建红球数组,随机生成1-33的6个不重复的数字,并放入红球数组中,2.将数组中6个数字从小到大进行排列 3.将数组中的数字依次放入6个红球中,4.最后将随机生成的1-16中的一个数字放入最后的蓝球中.效果如图所示: 首先用css进行简单的样式设置 用javascript来模拟

Flume-NG源码阅读之SourceRunner,及选择器selector和拦截器interceptor的执行

在AbstractConfigurationProvider类中loadSources方法会将所有的source进行封装成SourceRunner放到了Map<String, SourceRunner> sourceRunnerMap之中.相关代码如下: 1 Map<String, String> selectorConfig = context.getSubProperties( 2 BasicConfigurationConstants.CONFIG_SOURCE_CHANNE