javaScript与jQuery的比较(区别)

一:本质区别

    javaScript是通过<script></script>标签插入到html页面中,支持当前所有主流浏览器的轻量级的编程语言。

   jQuery是一个javaScript函数库(javaScript框架),使用jQuery,需要在html页面开始引入jQuery库。例:

       <script src="js/jquery.min.js"></script>
      库文件可以放到本地,也可以放在知名公司的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 官方

二:语法上的差异

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

1、操作元素节点

           JavaScript使用:(getElement系列和query系列)

   var first = document.getElementById('first');
   console.log('first', first);
   var cls = document.getElementsByClassName('cls');
   console.log('cls', cls);
   var li = document.getElementsByTagName('li');
   console.log('li', li);
   var naName = document.getElementsByName('na');
   console.log('naName', naName);
   var queryContent = document.querySelector('#a3');
   console.log('queryContent', queryContent);
   var queryContents = document.querySelectorAll('.cls');
   console.log('queryContents cls', queryContents);

        jQuery的使用

console.log('jQuery cls', $('.cls'));
console.log('jQuery first', $('#first'));
console.log('nameLi', $("li type[name='na']"));
console.log('li', $('li'));

    2.操作属性节点

          JavaScript使用:    

    var firstProp = document.getElementById('first').getAttribute('id');
    console.log('firstProp', firstProp);
    document.getElementById('first').setAttribute('name', 'one');
    document.getElementById('first').removeAttribute('name');

         jQuery的使用

console.log('firstAttr', $('#first').attr('id'));
$('#first').attr('name' ,'one');
$('#first').removeAttr('name');
// prop获取操作属性节点
console.log('propGet', $('#first').prop('id'));
$('#first').prop("id",'propSet');
$('#propSet').prop("id",'first');
console.log('propClass', $('.cls')[0]);
// $('.cls')[0].removeProp('name');
console.log('a3', $("#ab"));
$("#ab").removeProp("name");
$("#first").removeProp("name");
// 注:在使用prop设置时,只能设置已经存在于属相的属性值;使用removeProp删除时,现在使用暂时无法实 现;

    jquery中attr和prop的区别

           1、 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。

           2、对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

        prop和attr的使用,传入一个参数获取,传入两个参数设置;两者的不同 在:读取checked,disabled等属性名=属性值的属    性时,attr 返回 属性值或者undefined,当读取checked属性时,不会根据是否选中而改变;prop返回true和false,当读取的       checked属性时,会根据是否选中而改变;

3.操作文本节点

   JavaScript的使用

     innerHTML:取到或设置一个节点的HTML代码,可以取到css,以文本的形式返回

     innerText:取到或设置一个节点的HTML代码,不能取到css

     value:取到input[type='text']输入的文本

<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" value="222333">
</body>
// JavaScript 方法
<script type="text/javascript">
    console.log('serven_times', document.getElementById('serven_times').innerHTML);
    document.getElementById('serven_times').innerHTML = "<span style='color: #ff3a29'>呵呵</span>";
    console.log('serven_times text', document.getElementById('serven_times').innerText);
    document.getElementById('serven_times').innerText = '123';
    console.log('sdfads',document.getElementById("input").value);
</script>

   结果为:

        

 JQuery使用

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

    console.log('serven',$('#serven_times'));
    console.log('servenHTML',$('#serven_times').html());
    console.log('servenText',$('#serven_times').text());
    $('#serven_times').html("<span style='color: #ff3a29'>呵呵</span>");
    $('#serven_times').text('123');
    $('input').val('3333')

   结果为:

     

4.操作css样式

  JavaScript使用

    // childNodes获取当前节点的所有子节点
    console.log('firstChildNodes',document.getElementById('first').childNodes);
    // children 获取当前节点的所有元素子节点
    console.log('divChildren', document.getElementById('div').children);
    // parentNode:获取当前节点的父节点下的所有节点
    console.log('parentNode', document.getElementById('ab').parentNode);
    // #text (文本节点的 nodeName 永远是 #text) [获取第一个元素节点,包括回车等文本节点]
    console.log('firstChild', document.getElementById('div').firstChild);
    // 获取第一个元素节点,不包括回车节点
    console.log('firstElementChild', document.getElementById('div').firstElementChild);
    // lastChild、lastElementChild 同理
    console.log('previousSibling', document.getElementById('div').previousSibling);
    console.log('previousElementSibling', 
     document.getElementById('div').previousElementSibling);
    // nextSibling、nextElementSibling同理

   答案是:

         

  jQuery的使用

console.log('jQuery first-child',$('.cls:first-child'));

    答案是:

    

  1.提供了大量的选择器:
  •  :first-child         :first-of-type1.9+         :last-child         :nth-child        :nth-last-child()1.9+          nth-last-of-type()1.9+

       nth-of-type()1.9+           :only-child          :only-of-type1.9+

2. 除此之外也提供了对应的函数:

   first()    last()  children()  parents()  parent()  siblings()

6.给一个节点绑定事件

  javaScript的使用:

document.getElementById('first').onclick = function (ev) {
   alert('123');
}

jQuery的使用:

 ①.事件绑定的快捷方式

$('#first').click(function () {
    alert('456');
})

②:使用on进行事件绑定(可以使用on同时给同一对象绑定多个事件

$('#ab').on('click', function () {
    alert('111');
})
/③使用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中的事件因子

    });

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

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

三、JavaScript对象和JQuery对象的方法不能混用。

1.JavaScript对象和JQuery对象

① 使用$("")取到的节点为JQuery对象,只能调用JQuery方法,不能调用JavaScript方法;
*      $("#div").click(function(){})√
*      $("#div").onclick = function(){}× 使用JQuery对象调用JavaScript方法
*
*      同理,使用、document.getElement系列函数取到的对象为JavaScript对象,也不能调用JQery函数

2.JavaScript对象和JQuery对象互转

*① JQuery --->  JavaScript :使用get(index)或者[index]选中的就是JavaScript对象
*  $("div").get(0).onclick = function(){}
*  $("div").[0].onclick = function(){}
* ② JavaScript ---> JQuery :使用$()包裹JavaScript对象        (我们发现JQuery不管获得几个对象都是一个数组,可以直接给整个数组都添加某一事件)
*  var div = document.getElementById("div");
*  $(div).click(function(){});

  • 19
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript是一种编程语言,用于在网页上添加交互性和动态效果。jQuery是一个基于JavaScript的库,它简化了JavaScript的编写,提供了许多预定义的函数和方法,使得开发者可以更快速、更方便地编写JavaScript代码。因此,jQuery可以看作是JavaScript的一个扩展库。 ### 回答2: JavaScriptjQuery是前端开发中常用的两种工具。JavaScript是一种高级的动态编程语言,它支持面向对象、命令式、函数式和基于原型的编程风格。而jQuery则是一个JavaScript库,它提供了一系列的便捷的API和方法,简化了JavaScript编程的难度。 JavaScript是一种独立的编程语言,而jQuery则是构建在JavaScript之上的库。因此,在使用jQuery之前,开发人员需要学习JavaScript的基本语法和常用的编程技巧。而jQuery则将JavaScript语法进行了封装和优化,提供了更简单、更易于理解的操作方式,这使得使用jQuery来实现Web应用更加高效便捷。 另外,jQuery还提供了大量的开发插件和工具,这些工具可以帮助开发人员实现更复杂和更有创意的功能。例如,jQuery UI可以帮助开发人员快速构建用户界面,而jQuery Mobile则是一种响应式Web应用的框架,可以帮助开发人员针对移动设备进行优化。 虽然JavaScriptjQuery是两个不同的工具,但是它们之间并不是互相排斥的关系。实际上,在现代Web应用开发中,JavaScriptjQuery常常是一起使用的。开发人员可以根据需求选择JavaScriptjQuery来完成不同的任务,这样可以更加灵活和高效的进行Web应用的开发。 总之,在前端开发中,无论是使用JavaScript还是jQuery,都需要开发人员掌握基本的编程技能,并适当地运用各种工具和插件,以创建出更加高效、美观和易用的Web应用。 ### 回答3: JavaScriptjQuery都是Web开发中常用的技术,但这两者在概念、语法、功能和使用方面有很大的区别。 首先,JavaScript是一种编程语言,通常用于在Web浏览器中创建交互式用户界面。它是一种强大的脚本语言,适用于各种环境,不仅仅局限于Web环境,可以实现繁琐的动态效果,比如表单校验、定时器、Cookie的读取和设置等。而jQuery是一个基于JavaScript的库,是一组用于操作HTML文档和CSS样式的工具,它简化了JavaScript在Web上的操作,提供了更直观、简单的语法,帮助开发人员更快更好地实现各种功能和效果。 另外,JavaScript语法较为复杂,需要自己编写大量的代码实现各种功能,而jQuery库则把常用的功能都封装成了简单的方法,使得开发者只需要调用方法就能快速实现这些功能。这样就提高了应用的开发、维护以及跨浏览器的兼容性,大大简化了开发过程。 在具体的功能方面,JavaScriptjQuery也有不同,JavaScript涵盖了Web开发的大部分方面,包括HTML、CSS、XML、AJAX等,它是一门非常底层的语言,可以实现很多高级和复杂的功能。而jQuery更专注于操作HTML文档和CSS样式,如元素选择、交互效果、动画等,它不是一门新的编程语言,而是在JavaScript语法上的扩展,大大缩短了开发时间。 总的来说,JavaScriptjQuery都是Web开发中重要的技术,掌握这两门技术有助于提高开发的效率和质量。但是需要注意的是,在实际开发中,由于应用和环境的差异,使用什么样的技术应该根据具体情况而定,不可一概而论。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值