简体   繁体   中英

jQuery Multiple ID selectors

Here's a snippet of the start of my code:

var myUpload = $("#upload_link").upload({bla bla bla

Basically what I'm trying to do is make the same call with a few different ID's...

I would have assumed this would work but it doesn't:

var myUpload = $("#upload_link,#upload_link2,#upload_link3").upload({

Any ideas?

Try this:

$("#upload_link,#upload_link2,#upload_link3").each(function(){
    $(this).upload({
        //whateveryouwant
    });
});

If you give each of these instances a class you can use

$('.yourClass').upload()

You can use multiple id 's the way you wrote:

$('#upload_link, #upload_link2, #upload_link3')

However, that doesn't mean that those ids exist within the DOM when you've executed your code. It also doesn't mean that upload is a legitimate function. It also doesn't mean that upload has been built in a way that allows for multiple elements in a selection.

upload is a custom jQuery plugin, so you'll have to show what's going on with upload for us to be able to help you.

Make sure upload plugin implements this.each in it so that it will execute the logic for all the matching elements. It should ideally work

$("#upload_link,#upload_link2,#upload_link3").upload(function(){ });

If all your elements starting with upload_ in its id have the same purpose or syntax you could try and use the following:

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

This way you don't have to specify every single element in the selector.

it should. Typically that's how you do multiple selectors. Otherwise it may not like you trying to assign the return values of three uploads to the same var.

I would suggest using .each or maybe push the returns to an array rather than assigning them to that value.

That should work, you may need a space after the commas.

Also, the function you call afterwards must support an array of objects, and not just a singleton object.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM