function initRollOverImages() {   
    var image_cache = new Object();---这里是创建新对象   
    $(".swap a img").not("[src*='_on.']").each(function(i) {  ( 找到“.swap a img” 这个对象???不太明白这里,请高手详细讲解下。)
        var imgsrc = this.src;  ( 这里的this指的是哪个对象?)
        var dot = this.src.lastIndexOf('.'); --- 找到最后出现.的位置  
        var imgsrc_on = this.src.substr(0, dot) + '_on' + this.src.substr(dot, 4); --- 截取图片地址从(0,到最后出现点的位置)
        image_cache[this.src] = new Image();   (这里的代码不明白什么意思)
        image_cache[this.src].src = imgsrc_on; (这里的代码不明白什么意思)        $(this).hover(                           (这里的this指的是什么?)
            function() { this.src = imgsrc_on; },   
            function() { this.src = imgsrc; }   
        );   
    });   
}   
$(document).ready(initRollOverImages);(这句话什么意思)这段代码的功能我知道,就是不明白具体代码什么意思。麻烦高手解答,先谢谢了。

解决方案 »

  1.   


    function initRollOverImages() {  
        var image_cache = new Object();---这里是创建新对象  
        $(".swap a img").not("[src*='_on.']").each(function(i) {  //  $(".swap a img")获取所有class=swap的下面的A标记下面的img标签,[src*='_on.']就是图片路径包含_on.的,.not就是不包含;完整的也就是获取所有class=swap的下面的A标记下面的路径不包含_no.的img对象。
            var imgsrc = this.src;  ( //指的就是上面单个的img对象
            var dot = this.src.lastIndexOf('.'); --- 找到最后出现.的位置  
            var imgsrc_on = this.src.substr(0, dot) + '_on' + this.src.substr(dot, 4); --- 截取图片地址从(0,到最后出现点的位置) 
            image_cache[this.src] = new Image();  //初始花一个对象 
            image_cache[this.src].src = imgsrc_on; //设置对象的图片路径        $(this).hover(                          img对象。
                function() { this.src = imgsrc_on; },  
                function() { this.src = imgsrc; }  
            );  
        });  
    }  
    $(document).ready(initRollOverImages);//在页面加载的时候调用initRollOverImages方法
      

  2.   

    function中的this在没有调用的时候只是一个符号,不代表任何对象。只有当调用的时候才会产生一个内部对象,然后将内部对象的引用指针传递给对象实例。
      

  3.   

    十分感谢楼上的俩位,帮我解决问题~
    还想问下
    $(".swap a img") ,$() 这个的含义是什么。。如果用javaScript写出来是document.getElementByID的意思么?还有this,在这段代码中代表的是哪个对象我还是不太明白。
    image_cache[this.src]= new Image();   这里创建新对象为什么要加[this.src]呢?我查资料发现JavaScript的this跟.net不同,还是不太明白this指的是哪个。。
      

  4.   


    $在某中意义上跟document.getElementByID差不多,但比document.getElementByID要强大太多。 。
    比如获取id="px"的对象,即使$("#px"),等等很多
    这里的this和.net里面的其实差不多。
      

  5.   

    $()在jquery中是最核心的函数,根据参数获得jQuery对象。
    然后由$("")函数获得对象可以操作对应的HTML DOM节点。这里的this出现在each循环函数中,是指的当前的img DOM对象。
      

  6.   

    啊咧。。我一直都认为他们不一样呢。
    还有这里  not("[src*='_on.']").
    是正则表达是么?如果是的话×=是代表 零次或多次匹配前面的字符或子表达式
    前面在加上not。。不是出现1次的么
      

  7.   


    $()是jq选择器, 封装的比较好了. 这个实例中表示swap类中, a标签下, 所有的img元素, 不仅仅是js中的id.this的话要看函数的作用域了,就each来说, each中的每个this表示的是, 当前元素(一个obj), $.each(array, function(key, value){//this});这个函数中, this跟value是等价的, key值索引值.
    其他的地方, this需要靠lz自己体会了, 遇到this可以alert一下, 看到底是什么.~
      

  8.   

    7楼说的方法很好用,十分感谢。
    我目前最后2个疑惑
    ---------------------------------------------------------
    image_cache[this.src]= new Image();  这里创建新对象为什么要加[this.src]呢?
    ------------------------------------------------------------------------------------------------------------------
    还有这里  not("[src*='_on.']"). 
    是正则表达是么?如果是的话 ×=是代表 零次或多次匹配前面的字符或子表达式 
    前面在加上not。。不是出现1次的么
    --------------------------------------------------------- 
      

  9.   

    [attribute*=value]
    匹配给定的属性是以包含某些值的元素,以下是示例:HTML 代码:
    <input name="man-news" />
    <input name="milkman" />
    <input name="letterman2" />
    <input name="newmilk" /> jQuery 代码:
    $("input[name*='man']") 查找所有name属性包含字符串man的结果:
    [<input name="man-news" />, <input name="milkman" />, <input name="letterman2" /> 
      

  10.   


    这种问题为什么不看看jquery的文档呢?http://www.jquery.com 官方的,推荐http://www.okajax.com/book/jquery/ 中文的比较简单,但不是很全,很多新特性都没有
      

  11.   

    $(".swap a img")
    1、$()是jQuery的CSS3语法DOM选择器
    2、.swap a img是
    在所有持有swap的class的元素下的
    所有a元素下的
    所有img元素not("[src*='_on.']")
    1、not是jQuery生成的对象的方法,其参数也是CSS3语法字符串
    2、not是在已得到的jQuery对象中寻找说有不适用[src*='_on.']的DOM元素
    3、[src*='_on.']
    []是元素的属性检查器,src*='_on.'表示元素的src属性中有_on.(正则表达为/_on\./)each方法中的this
    1、each是遍历jQuery对象中所有的DOM对象,并执行用户的函数
    2、this是指当前遍历到的DOM元素(jQuery在each遍历时会将DOM元素绑定到用户的函数)
      

  12.   

    $(this)是将当前遍历到的元素进行jQuery分装image_cache[this.src] = new Image();
    image_cache[this.src].src = imgsrc_on;
    这两句的作用是缓存图片