jquery和javascript的区别是什么?区别详解

相信大家对于jquery以及javascript应该都是不会陌生的,但是,这两者之间的区别你都知道吗?下面的文章就是要给大家介绍一下这两者的区别,一起来看看吧。

1、语法

语法上存在差异

一个就是操作元素节点,javascript使用getElement系列、query系列;jquery使用大量的选择器同时使用$()包裹选择器。

<body>
    <ul>
        <li id="first">哈哈</li>
        <li class="cls" name="na">啦啦</li>
        <li class="cls">呵呵</li>
        <li name="na">嘿嘿</li>
    </ul>
    <div id="div">
        <ul>
            <li class="cls">呵呵</li>
            <li>嘿嘿</li>
        </ul>
    </div>
</body>
<script>
    document.getElementById("first"); //是一个元素
    document.getElementsByClassName("cls"); //是一个数组,即使只有一个元素,使用时需要用[0]取到第一个再使用
    document.getElementsByName("na"); //是一个数组,即使只有一个元素,使用时需要用[0]取到第一个再使用  document.getElementsByTagName("li");     //是一个数组,即使只有一个元素,使用时需要用[0]取到第一个再使用  document.querySelector("#div");        //是一个元素   document.querySelectorAll("#div li");    //是一个数组,即使只有一个元素,使用时需要用[0]取到第一个再使用
    
</script>
<body>
    <ul>
        <li id="first">哈哈</li>
        <li class="cls" name="na">啦啦</li>
        <li class="cls">呵呵</li>
        <li name="na">嘿嘿</li>
    </ul>
    <div id="div">
        <ul>
            <li class="cls">呵呵</li>
            <li>嘿嘿</li>
        </ul>
    </div>
</body>
<script src="http://code.jquery.com/jquery-1.6.min.js"></script>
<script>
    //使用JQuery取到的是jquery对象都是一个数组,即使只有一个元素被选中,但是在使用时候不一定需要使用:eq(0)来拿到这一个在使用可以直接使用
    $("#first");
    $(".cls");
    $("li type[name='na']");
    $("li");
    
    $("#div");
    $("#div li");
    
</script>

二个就是操作属性节点,jquery使用.attr()传入一个参数获取,传入两个参数设置.prop(),prop和attr相同,都能够对文本的属性进行读取和设置。

两者之间的不同在于,读取checked,disabled,等属性名=属性值的属性的时候,attr返回属性值或者是undefined,当读取的checked属性的时候,不会根据是否选中而发生改变,prop返回true和false,在读取的checked属性的时候,会根据是否选中而发生改变,也就是说,attr要取到的属性一定要是在标签上写明的属性,否则的话,就不可以取到。

<body>
    <ul>
        <li id="first">哈哈</li>
    </ul>
</body>
<script>
    document.getElementById("first")
        .getAttribute("id");
    document.getElementById("first")
        .setAttribute("name", "nafirst");
    document.getElementById("first")
        .removeAttribute("name");
    
</script>
<body>
    <ul>
        <li id="first">哈哈</li>
    </ul>
</body>
<script src="js/jquery.js"></script>
<script>
    $("#first")
        .attr("id");
    $("#first")
        .attr("name", "nafirst");
    $("#first")
        .removeAttr("name");
    $("#first")
        .prop("id");
    $("#first")
        .prop("name", "nafirst");
    $("#first")
        .removeProp("name");
    
</script>

三个就是操作文本节点,javascript使用 innerHTML:取到或设置一个节点的HTML代码,可以取到css,以文本的形式返回;innerText:取到或设置一个节点的HTML代码,不能取到css;value:取到input[type='text']输入的文本。

JQuery使用.html()取到或设置节点中的html代码;.text()取到或设置节点中的文本;.val()取到或设置input的value属性值。

<body>
    <ul>
        <li id="serven_times"><span style="color: chartreuse">嘿嘿</span></li>
        <li id="eight_times"><span style="color: chartreuse">嘿嘿</span> </li>
    </ul>
    姓名:<input type="text" id="input">
</body>
<script>
    document.getElementById("serven_times")
        .innerHTML;
    document.getElementById("serven_times")
        .innerHTML = "<span style='color: #ff3a29'>呵呵</span>";
    document.getElementById("eight_times")
        .innerText;
    document.getElementById("eight_times")
        .innerText = "啦啦";
    document.getElementById("input")
        .value;
    
</script>
<body>
    <ul>
        <li id="serven_times"><span style="color: chartreuse">嘿嘿</span></li>
        <li id="eight_times"><span style="color: chartreuse">嘿嘿</span> </li>
    </ul>
    姓名:<input type="text" id="input">
</body>
<script src="/js/jquery.min.js"></script>
<script>
    $("#serven_times")
        .html();
    $("#serven_times")
        .html("<span style='color: #ff3a29'>呵呵</span>");
    $("#eight_times")
        .text();
    $("#eight_times")
        .text("啦啦");
    $("#input")
        .val();
    $("#input")
        .val("哈哈");
    
</script>

四个就是操作css样式时

jquery和javascript的区别

五个就是操作层次节点方面

jquery和javascript的区别

而jquery,一个是提供了大量的选择器:first-child、:first-of-type1.9+、:last-child、:last-of-type1.9+、:nth-child、:nth-last-child()1.9+、:nth-last-of-type()1.9+、:nth-of-type()1.9+、:only-child、:only-of-type1.9+;还有一个就是提供了对应的函数first()、last()、children()、parents()、parent()、siblings()。

六个就是给一个节点绑定事件

javascript:使用了Dom0事件模型和Dom2事件模型;而jquery可以有两种,一个是事件绑定的快捷方式

<body>
    <button>按钮</button>
</body>
<script src="js/jquery-1.10.2.js"></script>
<script>
    $("button:eq(0)")
        .click(function () {
            alert(123);
        });
    
</script>

另外一个是使用on进行事件绑定

<body>
    <button>按钮</button>
</body>
<script src="js/jquery-1.10.2.js"></script>
<script>
    //①使用on进行单事件的绑定
    $("button:eq(0)")
        .on("click", function () {
            alert(456);
        });
    //②使用on同时给同一对象绑定多个事件
    $("button:eq(0)")
        .on("click dblclick mouseover", function () {
            console.log(123);
        });
    //③使用on,给一个对象绑定多个事件
    $("button:eq(0)")
        .on({
            "click": function () {
                console.log("click");
            }
            , "mouseover": function () {
                console.log("mouseover");
            }
            , "mouseover": function () {
                console.log("mouseover2");
            }
        });
    //④使用on给回调函数传参,要求是对象格式,传递的参数可以在e.data中取到;jquery中的e只能通过参数传进去,不能用window.event
    $("button:eq(0)")
        .on("click", { "name": "zhangsan", "age": 15 }, function (e) {
            console.log(e);
            console.log(e.data);
            console.log(e.data.name);
            console.log(e.data.age);
            console.log(window.event); //js中的事件因子
            
        });
    
</script>

七就是JQuery的文档就绪函数和window.onload的区别

一个是,window.onload必须等待网页资源(包括图片等)全部加载完成之后,才可以执行;而文档就绪函数只需要等到网页DOM结构加载完成后,就可以执行;二个是,window.onload在一个页面中,只能写一次,写多次会被最后一次覆盖,而文档就绪函数在一个页面中可以有N个。

2、本质

两者从本质上来说存在着区别

javascript是通过标签标签插入到HTML页面,可由所有的现代浏览器执行的一种轻量级的编程语言。

jquery是一个javascript函数库,也可以说是javascript中最流行的一种框架。

使用jquery首先要在HTML代码最前面加上对jquery库的引用。

<script src="js/jquery.min.js"></script>

库文件可以放在本地,也能够直接使用知名公司的CDN,好处就是这些大公司的CDN比较流行,用户早访问你的网站之前,很有可能在访问别的网站的时候就已经缓存在浏览器中了,所以能加快网站的打开速度,除此之外,还有一个好处就是节省了网站的流量带宽。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>  //Google

或者:

<script src="http://code.jquery.com/jquery-1.6.min.js"></script>   //jQuery 官方 

3、javascript对象和jquery对象的方法不可以混用

jquery和javascript的区别

以上的内容就是对于jquery和javascript的区别的介绍了,你都了解了吗?更多java项目中常见问题请继续关注奇Q工具网来进行了解吧。

推荐阅读:

jquery插件库,常用插件有哪些?

jquery中ajax完整例子怎么写?jquery中的ajax有什么用?

javascript代码大全,基础代码详解