jQuery Nhiều bộ chọn ID


120

Đây là đoạn mã bắt đầu mã của tôi:

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

Về cơ bản những gì tôi đang cố gắng làm là thực hiện cùng một cuộc gọi với một vài ID khác nhau ...

Tôi đã cho rằng điều này sẽ hoạt động nhưng nó không:

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

Có ý kiến ​​gì không?


Plugin tải lên bạn đang sử dụng là gì? Bạn có chắc nó tuân theo mô hình phát triển plugin được khuyến nghị không?
bfavaretto,

Nó phải hoạt động, phải là một cái gì đó với uploadchức năng. jsfiddle.net/X7TAX
Kokos

Câu trả lời:


230

Thử cái này:

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

3
Câu trả lời này chắc chắn sẽ hoạt động nhưng lý tưởng nhất là bất kỳ logic plugin nào cũng nên áp dụng cho tất cả các phần tử phù hợp.
ShankarSangoli

39

Nếu bạn cung cấp cho mỗi trường hợp này một lớp bạn có thể sử dụng

$('.yourClass').upload()

19

Bạn có thể sử dụng nhiều idtheo cách bạn đã viết:

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

Tuy nhiên, điều đó không có nghĩa là những id đó tồn tại trong DOM khi bạn thực thi mã của mình. Nó cũng không có nghĩa đó uploadlà một chức năng hợp pháp. Nó cũng không có nghĩa là nó uploadđã được xây dựng theo cách cho phép nhiều phần tử trong một vùng chọn.

uploadlà một plugin jQuery tùy chỉnh, vì vậy bạn sẽ phải hiển thị những gì đang xảy ra với uploadchúng tôi để có thể giúp bạn.


9

Đảm bảo rằng uploadplugin triển khai this.eachtrong đó để nó thực thi logic cho tất cả các phần tử phù hợp. Nó sẽ hoạt động lý tưởng

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

4

nó nên. Thông thường, đó là cách bạn thực hiện nhiều bộ chọn. Nếu không, có thể bạn sẽ không muốn gán giá trị trả về của ba lần tải lên cho cùng một var.

Tôi khuyên bạn nên sử dụng .eachhoặc có thể đẩy trả về một mảng thay vì gán chúng cho giá trị đó.


0

Điều đó sẽ hoạt động, bạn có thể cần một khoảng trắng sau dấu phẩy.

Ngoài ra, hàm bạn gọi sau đó phải hỗ trợ một mảng các đối tượng chứ không chỉ một đối tượng đơn lẻ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.