jQuery Selectores de ID múltiples


120

Aquí hay un fragmento del inicio de mi código:

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

Básicamente, lo que estoy tratando de hacer es hacer la misma llamada con algunas ID diferentes ...

Habría asumido que esto funcionaría, pero no es así:

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

¿Algunas ideas?


¿Cuál es el complemento de carga que está utilizando? ¿Estás seguro de que sigue el patrón de desarrollo de complementos recomendado?
bfavaretto

Debería funcionar, debe ser algo con la uploadfunción. jsfiddle.net/X7TAX
Kokos

Respuestas:


230

Prueba esto:

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

3
Esta respuesta definitivamente funcionará, pero lo ideal es que cualquier lógica de complemento se aplique a todos los elementos coincidentes.
ShankarSangoli

39

Si le da a cada una de estas instancias una clase, puede usar

$('.yourClass').upload()

19

Usted puede utilizar múltiples ides la forma en que escribió:

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

Sin embargo, eso no significa que esos ID existan dentro del DOM cuando haya ejecutado su código. Tampoco significa que uploadsea ​​una función legítima. Tampoco significa que uploadse haya construido de una manera que permita múltiples elementos en una selección.

uploades un complemento de jQuery personalizado, por lo que tendrá que mostrar lo que está sucediendo uploadpara que podamos ayudarlo.


9

Asegúrese de que el uploadcomplemento se implemente this.eachen él para que ejecute la lógica de todos los elementos coincidentes. Idealmente debería funcionar

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

4

debería. Normalmente, así es como se hacen varios selectores. De lo contrario, es posible que no le guste que intente asignar los valores de retorno de tres cargas a la misma var.

Sugeriría usar .eacho tal vez enviar los retornos a una matriz en lugar de asignarlos a ese valor.


0

Eso debería funcionar, es posible que necesite un espacio después de las comas.

Además, la función que llame posteriormente debe admitir una matriz de objetos, y no solo un objeto singleton.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.