2012-10-03 29 views
6

Tôi đang cố gắng để gỡ lỗi một mã nhà phát triển, và tôi không thể cho cuộc đời của tôi tìm ra những gì đang được lưu trữ trong biến này:Giải thích bộ chọn jQuery này?

var dl = $("<dl>",{class: 'my_class'}); 

Dòng này đang tạo ra một "mong đợi nhận dạng, chuỗi hoặc số "thông báo lỗi trong IE8 và thấp hơn, nhưng không có trình duyệt nào khác, và tôi đang cố gắng tìm ra nếu có một số cách khác tôi có thể thực hiện cùng một điều, với cú pháp khác nhau.

Mọi lời khuyên sẽ được đánh giá cao.

Trả lời

8

Tạo phần tử dl (được bao bọc trong đối tượng jQuery) với thuộc tính class với giá trị my_class. Xem jQuery docs để biết thêm về dạng hàm này.

Bạn gặp lỗi vì class là một từ dành riêng trong JavaScript. Bạn có thể sửa chữa nó bằng cách trích dẫn nó:

var dl = $("<dl>", { "class": "my_class" }); 

Ngoài ra, bạn có thể thiết lập các className tài sản thay vì (mà bạn sẽ không phải trích dẫn trong bất kỳ trình duyệt):

var dl = $("<dl>", { className: "my_class" }); 

Lưu ý rằng spec ES5 nói rằng bạn có thể sử dụng các từ dành riêng làm tên thuộc tính. Nhưng vì bạn dường như cần hỗ trợ các phiên bản cũ của IE, bạn sẽ phải quên điều đó và báo cho họ. Nếu bạn chỉ cần thả hỗ trợ cho IE dưới phiên bản 9, bạn sẽ không phải thay đổi mã của bạn ở tất cả;)

2

class là một từ dành riêng trong JavaScript, bạn nên quấn nó với dấu ngoặc kép:

var dl = $("<dl/>",{'class': 'my_class'}); 
Các vấn đề liên quan