<SCRIPT type=text/javascript>
function menuFix() {
var sfEls = document.getElementById("nav").getElementsByTagName("li"); 
for (var i=0; i <sfEls.length; i++) {
sfEls[i].onmouseover=function(){ 
this.className+=(this.className.length>0? " ": "") + "sfhover";
}
......................
}
}
window.onload=menuFix;
</SCRIPT>
想问一下 如下这句话是什么意思?
this.className+=(this.className.length>0? " ": "") + "sfhover";
这里的this.className和sfhover是不是与CSS有关呢? 请详解一下,谢谢!

解决方案 »

  1.   

    + 是连接符 
    如果这个li本身有class 那么加上空格后再加上sfhover(这个是class的名字)这时至少有两个class 
    如果这个li本身没有class 直接加上sfhover样式
      

  2.   

    楼上说的对
    this.className+=
    改为
    this.className=
      

  3.   

    ?:就是3元运算符 满足条件就执行问号后面的,不满足就执行:后面的,就跟if else一样效果
      

  4.   

    this.className是script形式给标签赋样式class
    this.className+=(this.className.length>0? " ": "") + "sfhover";这句话就是,如果样式存在,那么要加个空格再连接"sfhover",否则直接就是"sfhover"