Tôi đang phân tích cú pháp phản hồi JSON qua $.ajax()
và tạo biểu mẫu từ giá trị của đối tượng này. Các kịch bản tôi đã viết là dài, nhưng đây là những gì nó làm:jQuery .attr ('type', 'submit') trên phần tử nút cho tôi một lỗi lạ trong IE7
động tạo:
~ một yếu tố hình thức,
~ một yếu tố fieldset,
~ một yếu tố nút,
~ 20 hoặc lâu hơn đầu vào văn bản và các yếu tố nhãnPhụ thêm các đầu vào và nhãn vào fieldset
Phụ thêm nút vào fieldset
Gắn thêm fieldset vào biểu mẫu
- Thêm biểu mẫu vào phần tử trong DOM hiện tại.
Mọi thứ đều hoạt động trên tất cả các trình duyệt ngoại trừ một đoạn mã nhỏ trong IE. Tôi đã thu hẹp nó xuống đoạn mã sau đây. (doc
là một biến chứa document
)
fieldset.append(
$(doc.createElement('button'))
.addClass('ui-button')
.attr('type', 'submit')
.html('Re-Rate')
.button()
);
Đây là bước 3 từ trên cao. Nó tạo ra một phần tử nút, thêm một lớp, đặt thuộc tính type
thành submit
, cung cấp cho nó một số văn bản và sau đó gắn nó vào fieldset. IE không thành công với các lỗi "Object không hỗ trợ hành động này"
Nếu tôi nhận xét ra dòng .attr()
như thế này:
fieldset.append(
$(doc.createElement('button'))
.addClass('ui-button')
//.attr('type', 'submit')
.html('Re-Rate')
.button()
);
Tất cả mọi thứ hoạt động như mong đợi.
Nếu bạn đang tự hỏi, phương pháp .button()
là jQuery UI
gì xảy ra nếu bạn 'doc.createElement()' nó lần đầu tiên, gán cho nó gõ JS đơn giản, và sau đó biến nó thành một đối tượng jQuery? Chỉ để tìm ra bước nào là vấn đề? –
Bạn có thể muốn suy nghĩ về việc sử dụng một jQuery template [engine] (http://github.com/nje/jquery-tmpl) - [example] (http://weblogs.asp.net/scottgu/archive/2010/ 05/07/jquery-templates-and-data-linking-và-microsoft-góp-to-jquery.aspx) –
Ý tưởng hay John. Pekka, theo câu trả lời của Nick, nó có vẻ là jQuery-By-Design. – Stephen