this.className+=(this.className.length>0? " ": "") + "sfhover"; -》根据this.className是否为空,拼接this.className的值。this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"), ""); -》看这意思是:利用正则表达式,去除上面加上去的sfhover

解决方案 »

  1.   

    第一个我明白了。。
    第二个正则表达式new RegExp("( ?|^)sfhover\\b")这个是什么意思
    正则表达不是也/^开头$/结尾滴么
      

  2.   


    this.className.length>0? " ": ""
    //就类似于
    var str = this.className.length>0? " ": "";//如果this.className.length>0,str=" ",否则str=""
    //也就是
    this.className += " sfhover"或this.className += "sfhover"的差别this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"), ""); 
    //就是替换" sfhover"或"sfhover"为""的意思
      

  3.   

    正则表达式对象
    本对象包含正则表达式模式以及表明如何应用模式的标志。语法 1
    re = /pattern/[flags]语法 2
    re = new RegExp("pattern",["flags"]) 
      

  4.   

    看样子,那个正则表达式是这样的意思:
    |是个语法,即要么这样要么那样的意思,OR
    ^是说起头,也就是sfhover是字段的开头
    [ ]?是说有一个以上的空格
    我没有学过,但是估摸着八九不离十这个表达式就是为了找到sfhover去除,但是防止它是变量中的字节