Селекторы нескольких идентификаторов jQuery


121

Вот фрагмент начала моего кода:

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

По сути, я пытаюсь сделать один и тот же вызов с несколькими разными идентификаторами ...

Я бы предположил, что это сработает, но это не так:

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

Любые идеи?


Какой плагин загрузки вы используете? Вы уверены, что он соответствует рекомендуемому шаблону разработки плагинов?
bfavaretto

Должно работать, должно быть что-то с uploadфункцией. jsfiddle.net/X7TAX
Кокос

Ответы:


230

Попробуй это:

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

3
Этот ответ определенно сработает, но в идеале любая логика плагина должна применяться ко всем согласованным элементам.
ShankarSangoli

39

Если вы дадите каждому из этих экземпляров класс, вы можете использовать

$('.yourClass').upload()

19

Вы можете использовать несколько idтак, как написали:

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

Однако это не означает, что эти идентификаторы существуют в DOM, когда вы выполняете свой код. Это также не означает, что uploadэто законная функция. Это также не означает, что uploadон был построен таким образом, что позволяет использовать несколько элементов в выборе.

upload- это настраиваемый плагин jQuery, поэтому вам нужно будет показать, что с ним происходит, uploadчтобы мы могли вам помочь.


9

Убедитесь, что uploadплагин реализует this.eachего, чтобы он выполнял логику для всех совпадающих элементов. В идеале должно работать

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

4

должно. Обычно так вы делаете несколько селекторов. В противном случае вам может не понравиться попытка присвоить возвращаемые значения трех загрузок одной и той же переменной.

Я бы посоветовал использовать .eachили, возможно, передать результаты в массив, а не присваивать их этому значению.


0

Это должно сработать, вам может понадобиться пробел после запятых.

Кроме того, функция, которую вы вызываете позже, должна поддерживать массив объектов, а не только одноэлементный объект.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.