2009-04-13 33 views
79

Ví dụ, sau đây chọn một bộ phận với id = "2":Làm cách nào để chọn một phần tử trong jQuery bằng cách sử dụng một biến cho ID?

row = $("body").find("#2"); 

Làm thế nào để làm điều gì đó như thế này:

row_id = 5; 
row = $("body").find(row_id); 

Cú pháp trên tạo ra một lỗi. Tôi đã kiểm tra tài liệu jQuery và câu trả lời ở đây mà không thành công.

+6

Chà, năm câu trả lời giống hệt nhau ... – Zifre

Trả lời

150
row = $("body").find('#' + row_id); 

Quan trọng hơn là làm cho body.find bổ sung không có tác động đến hiệu suất. Cách thích hợp để làm điều này chỉ đơn giản là:

row = $('#' + row_id); 
+0

Vậy đó! Cảm ơn! – Tony

0

Tôi không biết nhiều về jQuery, nhưng cố gắng này:

row_id = "#5"; 
row = $("body").find(row_id); 

Chỉnh sửa: Tất nhiên, nếu biến đó là một con số, bạn phải thêm "#" vào phía trước:

row_id = 5 
row = $("body").find("#"+row_id); 
5

Bạn có thể làm điều đó như thế này:

row_id = 5; 
row = $("body").find('#'+row_id); 
1

Có hai vấn đề với mã của bạn

  1. Để tìm một phần tử bằng ID bạn phải thêm tiền tố nó với một "#"
  2. Bạn đang cố để chuyển một số cho hàm tìm thấy khi một chuỗi là bắt buộc (đi qua "#" + 5 sẽ sửa lỗi này vì nó sẽ chuyển đổi 5 thành "5" đầu tiên)
37

Cách ngắn nhất là:

$("#" + row_id) 

Hạn chế tìm kiếm đối với cơ thể không có bất kỳ lợi ích nào.

Ngoài ra, bạn nên xem xét đổi tên id s thành một cái gì đó có ý nghĩa hơn (và HTML tuân thủ theo câu trả lời của Paolo), đặc biệt là nếu bạn có một bộ dữ liệu cần phải được đặt tên là tốt.

+0

Điểm tốt - cảm ơn vì đã làm rõ điều này. – Tony

+0

Tôi thích súc tích. Tôi chỉ sử dụng điều này với chú giải công cụ qTip2, hoạt động tốt. Tôi là một chút tò mò những gì các hình phạt hiệu suất là để tạo ra rất nhiều những "chỉ trong thời gian" như để đáp ứng với đầu vào của người dùng. –

26

Làm $('body').find(); là không cần thiết khi tra cứu bằng ID; không đạt được hiệu suất.

hãy cũng lưu ý rằng có một ID mà bắt đầu với một số được not valid HTML:

ID và TÊN thẻ phải bắt đầu bằng một chữ cái ([A-Za-z]) và có thể được theo sau bởi bất kỳ số các chữ cái, chữ số ([0-9]), dấu gạch ngang ("-"), dấu gạch dưới ("_"), dấu hai chấm (":") và dấu chấm (".").

+0

OK. Tôi sẽ xem xét việc thay đổi định dạng ID. – Tony

Các vấn đề liên quan