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

 

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>