2013-02-07 34 views
7

1) Cách đặt HTML thành bảng đã tạo hoặc bất kỳ Phần tử nào khác?Cách đặt html thành phần tử trong extjs

Tôi là người mới bắt đầu. Tôi cố gắng dưới đây để thiết lập một số nội dung bên trong HTML

var clickedElement = Ext.getCmp('id').el.child('>'); 
clickedElement.setHTML("hello"); 

Trên đây là làm việc tốt nhưng vấn đề là như bảng điều khiển có nhiều của div bên trong nó .. phương pháp trên được xóa bỏ những html bên trong (tức là của div) và thay thế bằng nội dung trên.

Tôi đã thấy thông qua Chrome rằng bảng điều khiển có ba div lồng nhau. Vì vậy, nếu tôi muốn thêm HTML để nó sau đó tôi cần phải cung cấp một cái gì đó như dưới đây:

var clickedElement = Ext.getCmp('id').el.child('>').child('>'); //two times child 

Khi tôi cố gắng tiếp cận trên, tôi đang bổ sung thêm thành công nội dung html và cũng là của div không loại bỏ. Đây là vấn đề ở chỗ, tôi không thể thấy nội dung được thêm vào (có thể do một số kiểu mặc định, tôi có thể thấy nội dung đang được thêm vào trong bảng điều khiển của Chrome.)

Tôi chỉ hỏi liệu có cách nào hiệu quả không thêm HTML vào bảng điều khiển. Theo tôi, đây là cách tiếp cận rất dễ dàng mà tôi đang phức tạp ở đây.

2) Làm thế nào để kiểm tra xem một Element có một đứa trẻ cụ thể?

Giả sử, ví dụ: Nếu tôi thêm extjs Button làm con (mục) vào bảng điều khiển của mình trong khi tạo bảng. (mà tôi có thể làm). Làm thế nào để kiểm tra xem bảng điều khiển có yếu tố cụ thể (tức là nút ở đây)?

Trước khi hỏi tại đây, tôi đã tìm kiếm rất nhiều và thấy có phần tương đối nhưng không hữu ích link cho vấn đề của tôi.

Trả lời

13

Trong ExtJS hầu hết các thành phần được coi là chỉ có một phần tử cơ thể ngay cả khi bạn nhìn thấy nhiều hơn trên mái vòm. Ngược lại với jQuery mà về cơ bản được thêm vào trên một đánh dấu ExtJS tạo ra toàn bộ đánh dấu của chính nó.

Bây giờ câu hỏi của bạn, để cập nhật mã HTML của một thành phần bạn chỉ có thể gọi phương thức update() như thế

Ext.getCmp('id').update('hello'); 

Xem JSFiddle

+0

Cảm ơn bạn đã làm việc này. xin vui lòng cũng cung cấp cho câu trả lời cho câu hỏi thứ hai của tôi trong bài đăng này .. :) –

+1

@ Đối với điều đó bạn sẽ tìm kiếm các thành phần và không phải là một yếu tố trong dom. Giống như Ext.getCmp ('id'). Down ('button [text = enter]'); – sra

+0

ok .. Tôi đã sử dụng update() như bạn đã đề cập, nhưng nó hoạt động giống như cái tôi đã đề cập trong bài viết của tôi, tức là 'var clicksElement = Ext.getCmp ('id'). El.child ('>'); clicksElement.setHTML ("hello"); 'Do đó, điều này cũng đang loại bỏ bên trong' div'. và bây giờ khi tôi cố gắng để có được html, toàn bộ mã của tôi đang được điều sai lầm. bởi vì một số phần tử không có phần tử lồng nhau (tức là nội dung thay đổi) và phần còn lại có div lồng nhau ... –

1
Ext.ComponentQuery.query('#itemIdOfComponent').update('new value'); 

Đừng đặt id vào các thành phần thay vì thêm một cấu hình itemId và xem tài liệu cho Ext.ComponentQuery.query.

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