将字符串作为id名称传递给jQuery中的jQuery

时间:2015-08-25 14:24:54

标签: javascript jquery

我想制作一个从数组中随机取一个字符串并将其用作jQuery选择器的javascript,但我不知道如何。

$(document).ready(function() {
    var x = Math.floor(Math.random() * 10 + 1);
    var array = ["img1", "img2", "img3", "img4", "img5", "img6", "img7", "img8", "img9", "img10", "img11"];
    $("id[name^=array[x]]").click(function() {
        var src1 = $("id[name^=array[x]]").attr("src");
        var src2 = $("#img").attr("src");
        if (src1 != src) {
            $("#img").attr("src", src1);
        }
    });
    $("id[name^=array[x]]").trigger("click");
})

如果我写"id[name^=array[x]]",它就不起作用,它说:

"Uncaught Error: Syntax error, unrecognized expression: id[name^=array[x]]"

1 个答案:

答案 0 :(得分:1)

您可以尝试这样: -

$(document).ready(function () {
    var x = Math.floor(Math.random() * 10 + 1);
    var array = ["img1", "img2", "img3", "img4", "img5", "img6", "img7", "img8", "img9", "img10", "img11"];
    var $id = $("[name^=" + array[x] + "]");
    console.log($id);
    $id.click(function () {
        var src1 = $id.attr("src");
        var src2 = $("#img").attr("src");
        if (src1 != src) {
            $("#img").attr("src", src1);
        }
    });
    $id.trigger("click");
});

修改

你的选择器在这里是错误的。因此,如果您想选择ID为img1img2等ID的元素,则需要使用: -

var $id = $("[id^=" + array[x] + "]");

如果您想要获取名称为img1img2等的元素,则需要使用: -

var $name = $("[name^=" + array[x] + "]");

请根据您的要求修改代码。

希望这有帮助!