2011-10-27 33 views
19

sau 2 giờ tìm kiếm Tôi quyết định đặt câu hỏi của mình.jquery nối div bên trong div với id và thao tác

Tôi có một div:

<div id="box"></div> 

Tôi muốn thêm một div bên trong div trên sử dụng jquery.

tôi đã cố gắng (mã sau đây là bên trong một hàm):

var e = $('<div style="display:block; float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 
$('div', e).attr('id', 'myid'); 
$("#box").append(e); 

nhưng truy cập vào $ ("# myid") không được làm việc.

bất kỳ ý tưởng nào về cách thêm div trong div và có thể thao tác chúng?

cảm ơn bạn!

Trả lời

29

Nó chỉ là thứ tự sai

var e = $('<div style="display:block; float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 
$('#box').append(e);  
e.attr('id', 'myid'); 

Nối đầu tiên và sau đó truy cập/bộ attr.

+0

Tại sao lại sử dụng ba dòng mã, khi chỉ cần một dòng mã? Tại sao đính kèm id sau đó khi nó chỉ có thể được đặt ngay vào mã nguồn HTML? – jfriend00

+7

Tôi chỉ đang cố gắng giải quyết vấn đề ban đầu, chứ không phải để cải thiện nó. –

+0

Tôi đã hy vọng OP sẽ thấy rằng có một cách cải thiện để làm điều đó. – jfriend00

4

điều Bạn đang overcomplicating:

var e = $('<div style="display:block; float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 
e.attr('id', 'myid'); 
$('#box').append(e); 

Ví dụ: http://jsfiddle.net/ambiguous/Dm5J2/

0
var e = $('<div style="display:block; id="myid" float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 
$("#box").html(e); 
+0

Phương thức '.html()' nhận một chuỗi chứ không phải đối tượng jQuery làm đối số của nó. – jfriend00

3

Tại sao không đi thậm chí đơn giản hơn với một trong hai một trong các tùy chọn này:

$("#box").html('<div id="myid" style="display:block; float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 

Hoặc, nếu bạn muốn thêm nó vào nội dung hiện có:

$("#box").append('<div id="myid" style="display:block; float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 

Lưu ý: Tôi đặt ngay id="myid" vào chuỗi HTML thay vì sử dụng mã riêng để đặt.

Cả hai phương thức .html().append() jQuery đều có thể lấy chuỗi HTML nên không cần sử dụng bước riêng để tạo đối tượng.

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