jQuery多个ID选择器

Web*_*bby 111 javascript jquery

这是我的代码开头的片段:

var myUpload = $("#upload_link").upload({bla bla bla
Run Code Online (Sandbox Code Playgroud)

基本上我要做的就是用几个不同的ID进行相同的调用......

我本以为这会起作用但不会:

var myUpload = $("#upload_link,#upload_link2,#upload_link3").upload({
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

rsp*_*lak 217

试试这个:

$("#upload_link,#upload_link2,#upload_link3").each(function(){
    $(this).upload({
        //whateveryouwant
    });
});
Run Code Online (Sandbox Code Playgroud)

  • 这个答案肯定会有效,但理想情况下,任何插件逻辑都应该适用于所有匹配的元素. (3认同)

ton*_*and 37

如果您为每个实例提供一个可以使用的类

$('.yourClass').upload()
Run Code Online (Sandbox Code Playgroud)


zzz*_*Bov 17

可以id像你写的那样使用多个:

$('#upload_link, #upload_link2, #upload_link3')
Run Code Online (Sandbox Code Playgroud)

但是,这并不意味着当您执行代码时,这些ID存在于DOM中.它也不意味着这upload是一个合法的功能.它也并不意味着upload已经以允许选择中的多个元素的方式构建.

upload是一个自定义的jQuery插件,因此您必须显示正在发生的事情upload才能帮助您.


Sha*_*oli 8

确保upload插件this.each在其中实现,以便它将执行所有匹配元素的逻辑.它应该理想的工作

$("#upload_link,#upload_link2,#upload_link3").upload(function(){ });
Run Code Online (Sandbox Code Playgroud)


Tho*_*fer 6

如果以upload_in开头的所有元素都id具有相同的用途或语法,您可以尝试使用以下内容:

$("*[id^='upload_']").each(function() {
    $(this).upload()
});
Run Code Online (Sandbox Code Playgroud)

这样您就不必指定选择器中的每个元素。


Jos*_*kle 5

这应该。通常这就是您使用多个选择器的方式。否则它可能不喜欢您尝试将三个上传的返回值分配给同一个 var。

我建议使用.each或可能将返回值推送到数组,而不是将它们分配给该值。