jQuery 中的变量

问题描述 投票:0回答:3

我对此有两个问题:

  1. 我试图将图像分配给变量 img1,然后将该变量 img1 插入到 CSS 中,但它不起作用。 我在下面的代码中做错了什么? (注意,如果我不使用变量,即如果我将图像路径直接放入其中,代码就可以正常工作,所以我知道变量一定有问题)

  2. 假设我可以让 img1 变量起作用,我可以以某种方式将其转换为 id 或类,以便我可以使用 jQuery 操作它吗?例如,我希望能够以与下面代码中的 .contactform 类相同的方式执行 $("img1").hide(1000)

    var img1 = url('/wp-content/themes/custom/images/blah.jpg') repeat;
    
    $("#submit").click(function(){
        $(".contactform").hide(1000,function(){
            $(".contactforms").css({display:"block"});
            $("body.custom").css({background: "img1"});
    
        });
    });
    
javascript jquery
3个回答
2
投票

这不是有效的 JavaScript 语法。您需要将 img1 用引号引起来,以便将其识别为字符串。试试这个:

var img1 = "url('/wp-content/themes/custom/images/blah.jpg') repeat";

$("#submit").click(function(){
    $(".contactform").hide(1000,function(){
        $(".contactforms").css({display:"block"});
        $("body.custom").css({background: img1});

    });
  });

1
投票

$("body.custom").css({背景:"img1"});应该是 $("body.custom").css({背景:img1});

“img1”是字符“img1”的文字字符串,而 img1 是变量标识符。


0
投票

尝试说:

var img1 = "url('/wp-content/themes/custom/images/blah.jpg') repeat;";

带引号。你的 JS 引擎应该会抱怨。始终检查错误控制台!

对于第 2 部分,您可以编写一个小助手:

function setImage(img) {
  $("#submit").click(function() {
    $(".contactform").hide(1000,function() {
        $(".contactforms").css({display:"block"});
        $("body.custom").css({background: img});
    });
  });
}

最初您会说

setImage(img1)
,但稍后您可以使用不同的参数再次调用它。如果您只需要更改文件名,也许是这样的:

function setImageFilename(filename) {
  setImage("url('/wp-content/themes/custom/images/" + filename + "') repeat;");
}
© www.soinside.com 2019 - 2024. All rights reserved.