【问题标题】:Find & replace jquery查找和替换 jquery
【发布时间】:2008-10-24 15:02:51
【问题描述】:

我有这段代码可以让我在提交按钮上滚动,我正在尝试使它更通用:

$('.rollover').hover(
            function(){ // Change the input image's source when we "roll on"
                srcPath = $(this).attr("src");
                            srcPathOver = ???????
                /*need to manipulate srcPath to change from
                img/content/go-button.gif
                into 
                img/content/go-button-over.gif
                */
                $(this).attr({ src : srcPathOver});
            },
            function(){ // Change the input image's source back to the default on "roll off"
                $(this).attr({ src : srcPath});
            }
     );

真的有两件事,

我想了解如何操作srcPath 变量以将文本“-over”附加到 gif 文件名上,从而为翻转提供新图像。谁能建议一种方法来做到这一点?

另外,有人能告诉我这段代码是否可以改进吗?我对 jQuery 有点陌生,想知道是否可以改进语法。

非常感谢。

【问题讨论】:

    标签: jquery


    【解决方案1】:
    $('.rollover').hover(
                function(){ // Change the input image's source when we "roll on"
                    var t = $(this);
                    t.attr('src',t.attr('src').replace(/([^.]*)\.(.*)/, "$1-over.$2"));
                },
                function(){ 
                    var t= $(this);
                    t.attr('src',t.attr('src').replace('-over',''));
                }
         );
    

    【讨论】:

      【解决方案2】:

      要操作文件名并附加“-over”,您只需执行一些 Javascript 字符串操作,如下所示:

      function appendOver(srcPath){
          var index = s.indexOf('.');
      
          var before = s.substr(0, index);
          var after = s.substr(index);
      
          return before + "-over" + after;
      }
      

      这应该返回原始文件名(所有可能的格式)并在扩展点之前添加“-over”字符串。

      【讨论】:

        【解决方案3】:

        您应该能够使用正则表达式替换来修改您的源路径。像这样:

        srcPathOver = srcPath.replace(/([^.]*)\.(.*)/, "$1-over.$2");
        

        更多关于 JavaScript 正则表达式here

        就你的做法而言,我会确保你像这样定义你的 srcPath 变量

        var srcPath;
        $('.rollover').hover(...
        

        您上面的代码使它看起来像 srcPath 是一个全局变量,这不是您想要的。

        【讨论】:

          猜你喜欢
          • 2021-06-01
          • 2016-03-04
          • 2012-09-22
          • 2021-10-25
          • 2020-08-23
          • 2011-05-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多