• 前端面试提(2)


    1.如何获取和添加自定义属性

    js方法:

    获取方法:

    document.getElementById("newTest").getAttribute("myAttr");

    添加的方法是:

    document.getElementById("newTest").setAttribute("newAttr","new");

    jquery方法:

    $("#newTest").attr("myAttr");

    $("#newTest").attr("newAttr","new");

    2.如何解决jquery冲突问题?

    jquery解决冲突

      在JQuery中,$是JQuery的别名,所有使用的$的地方都可以使用JQuery来替换,如$("msg")等同于JQuery("msg")的写法。然而,当我们引入多个js库后,在另一个js库中也定义了$符号的话,那么我们在使用$符号时就发生了冲突。下面以引入两个库文件jquery.js和prototype.js为例来进行说明。

    第一种情况:jquery.js在prototype.js之后进行引入:

    在这种情况下,我们在自己的js代码中如下写的话: $( ' #msg ' ).hide(); $永远代表的是jquery中定义的$符号,也可以写成JQuery('#msg').hide();如果想要使用prototype.js中定义的$,我们在后面再介绍。

       第二种情况:jquery.js在prototype.js之前进行引入,如:

       在这种情况下,我们在自己的js代码中如下写的话: $( ' #msg ').hide(); $此时代表的prototype.js中定义的$符号,如果我们想要调用jquery.js中的工厂选择函数功能的话,只能用全称写法JQuery('#msg').hide().

        下面先介绍在第一种引入js库文件顺序的情况下,如何正确的使用不同的js库中定义的$符号。     一.使用JQuery.noConflict()     该方法的作用就是让JQuery放弃对$的所有权,将$的控制权交还给prototype.js,因为jquery.js是后引入的,所以最后拥有$控制权的是JQuery。它的返回值是JQuery。当在代码中调用了该方法以后,我们就不可以使用$来调用JQuery的方法了,此时$就代表在prototype.js库中定义的$了。如下:

    自此以后$就代表prototype.js中定义的$,jquery.js中的$无法再使用,只能使用jquery.js中$的全称JQuery了。

         二.自定义JQuery的别名     如果觉得第一种方法中使用了JQuery.noConflict()方法以后,只能使用JQuery全称比较麻烦的话,我们还可以为JQuery重定义别名。如下: 自此以后$就代表prototype.js中定义的$,jquey.js中的$无法再使用,只能使用$j来作为jquey.js中JQuery的别名了。 

       三.使用语句块,在语句块中仍然使用jquery.js中定义的$,如下:

     或者使用如下语句块: (function($){ $('#msg').hide();//此时在这个语句块中使用的都是jquery.js中定义的$. })(JQuery)

        如果在第二种引入js库文件顺序的情况下,如何使用jquery.js中的$,我们还是可以使用上面介绍的语句块的方法,如: 这种使用语句块的方法非常有用,在我们自己写jquery插件时,应该都使用这种写法,因为我们不知道具体工作过程中是如何顺序引入各种js库的,而这种语句块的写法却能屏蔽冲突。

    3.获得本地链接的方法是:window.location.href.toLowerCase();

  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/jiuyuetian/p/6424025.html
Copyright © 2020-2023  润新知