2012-05-18 31 views
5

Trong tệp JS của tôi, tôi đang cố gắng đặt nội dung vào hộp thoại bật lên. Trong firebug, tôi thấy hộp thoại mở ra và nó treo ngay cả sau khi tôi đặt nội dung của nó bằng $(dialog).InnerHtml. Nhưng điều này hoạt động khi tôi làm mới trang.Không thể đặt hộp thoại jquery.InnerHtml (một số nội dung) mà không cần làm mới trang

Bất kỳ lý do cụ thể nào cho hành vi này?

Trả lời

12

Bạn không thể đặt .innerHTML trực tiếp khỏi đối tượng jQuery. Thay vào đó, bạn cần đặt $.html().

// jQuery doesn't have an innerHTML property, so this is wrong 
$("#dialog").innerHTML = "This is the wrong way"; 

// jQuery has an html() method that sets the html within your dialog 
$("#dialog").html("And this is the correct way"); 

Hãy nhớ rằng khi bạn đang xử lý jQuery, bạn đang xử lý một đối tượng chứ không phải một thành phần. Các thuộc tính như .innerHTML tồn tại trên các phần tử trong DOM, nhưng không tồn tại trong đối tượng jQuery. jQuery cung cấp các phương thức như $.html() để bạn không phải chạm vào .innerHTML.

1

Đây là cách làm:

Trong javascript:

document.getElementById('dialog').innerHTML = 'something'; 

Trong Jquery:

$("#dialog").html('something'); 
Các vấn đề liên quan