学习jquery框架一点点心得

高手请在此飘过。。。纯属个人娱乐

 

Dom对象与Jquery对象互转

首先,我们约束一下(个人习惯)

Jquery 对象我们可以 以”$”符号开始命名

var $count=jquery对象;

 

dom对象 约束第一个字母为小写开头

var userName=dom对象

 

例子<div id=”test”></div>

代码如下

Var $test=$(“#test”);//jquery对象

Var test=document.getElementById(“test”);//dom对象

 

Dom对象转换jquery对象,方法很简单。请看下面

Var $newTest= $(test);

直接将dom对象放入$(你的dom对象)

 

Jquery对象转换dom对象,可以通过索引index或者get方法转换dom对象

 

1、  索引方法

var test1=$(“#test”)[0];//取出第一个id为test的dom对象

2、  get方法

var test2=$(“#test”).get(0);//取出第一个id为test的dom对象

 

下面看2个demo演示

Demo1:DOM -----点击test按钮改变值

<!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>

    <title></title>

  <!--  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>-->

    <script src="js/jquery-1.4.1.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(function () {

            $("#btn").click(function () {

                //推荐使用原生态操作

                //1、dom操作改变button里的value值

                var myThis = this; //这里是dom对象

                myThis.value = "我是dom";

 

                //2、jquery操作改变button里的value值

                //var $this = $(this); //这里是jquery对象

                //$this.val("我是jquery改变");

 

            });

        });

    </script>

</head>

<body>

 

<input type="text" id="txtName" />

<input id="btn" value="test" name="btn" type="button" />

</body>

</html>

结果:test->我是dom

 

Demo2:jquery---点击test按钮值立刻变为“我是jquery改变”

<!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>

    <title></title>

  <!--  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>-->

    <script src="js/jquery-1.4.1.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(function () {

            $("#btn").click(function () {

                //推荐使用原生态操作

                //1、dom操作改变button里的value值

                // var myThis = this; //这里是dom对象

                // myThis.value = "我是dom";

 

                //2、jquery操作改变button里的value值

                var $this = $(this); //这里是jquery对象

                $this.val("我是jquery改变");

 

            });

        });

    </script>

</head>

<body>

 

<input type="text" id="txtName" />

<input id="btn" value="test" name="btn" type="button" />

</body>

</html>

结果:test->我是jquery改变

 

冲突

默认情况下,jquery用$作为自身快捷方式

<!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>

    <title></title>

  <!--  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>-->

    <script src="js/jquery-1.4.1.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        //这段代码放在这里为了演示冲突

        //为了方便,我自定义$冲突方法,其他类库也有可能定义$符号(如prototype)

        function $(id) {

            return document.getElementById(id);

        }

 

        function btnFun() {

           //这里演示用jq方法获取文本框的值

            alert($("#txtName").val());

        }

       

    </script>

</head>

<body>

 

<input type="text" id="txtName" />

<input id="btn" value="test" name="btn" type="button" οnclick="btnFun();" />

</body>

</html>

这段代码意思很简单,点击按钮弹出文本框值。。

在chrome浏览器发现报了一个这样错误:Uncaught TypeError: Cannot call method 'val' of null

报错原因很明显咯:$符号调用我上面自定义$方法,而js只有value这个属性,没有val()方法

如何解决?

方法一:将其中一个类库$替换其他符号来代替(此方法工作量大,出错几率大,不推荐)

方法二:将所有调用jq方法全部用jQuery,而不是使用$

function btnFun() {

           //这里演示用jq方法获取文本框的值

            alert($("#txtName").val());

 }

修改为以下

function btnFun() {

           //这里演示用jq方法获取文本框的值

            alert(jQuery ("#txtName").val());

      }

 

方法三:

jQuery.noConflict();//将$变量交给上面方法$(或者引入prototype类库)

var $jj= jQuery.noConflict();//将变量交给上面方法$(或者引入prototype类库),并自自定义$jj

用法:

var $jj= jQuery.noConflict();

function btnFun() {

           //这里演示用jq方法获取文本框的值

            alert($jj ("#txtName").val());

    }

 

 

判断对象是否存在

    <!--判断对象是否存在--->

    <script type="text/javascript">

        jQuery(function () {

           

            //dom判断

            if (document.getElementById("aa")==null) {

                alert("dom判断此对象aa不存在");

            }

 

            //jq判断一(推荐)

            if (jQuery("#aa").length==0) {

                alert("1、jquery判断此对象aa不存在");

            }

            //jq判断二

            if (jQuery("#aa")[0]==null) {

                alert("2、jquery判断此对象aa不存在");

            }

        });

    </script>

转载于:https://www.cnblogs.com/walleyekneel/archive/2013/03/24/2979361.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值