2009-10-25 42 views
19

Vì vậy, chúng ta hãy nói rằng tôi có điều này:tạo đối tượng JQuery bằng cách truyền đối tượng DOM?

var d = document.createElement('div'); 
d.id = "whatever";` 

Vì vậy, d là đối tượng DOM,

làm thế nào tôi có thể tạo hoặc chuyển đổi nó thành đối tượng jQuery?

ví dụ: $(d) ???

và, cách 'đọc' tất cả các thuộc tính của đối tượng jQuery? giống như var_dump của PHP.

+0

Nếu bạn chỉ muốn xem các thuộc tính và chức năng liên quan đến $ (d) làm một console.log ($ (d)) mà sẽ in chi tiết của đối tượng $ (d) trong bảng điều khiển firebug. Điều này sẽ chỉ hoạt động với firefox với firebug thêm vào – Nick

Trả lời

23
// create a jQuery-boosted div 
$div = $('<div></div>'); 
$div.attr('id','someId'); 
alert($div.attr('id')); 

// to get the DOM element: 
var div = $div[0]; 

// or 
var div = $div.get(0); 

hoặc chỉ quấn yếu tố dom trong $() như bạn đề nghị:

$(d).attr('id','someId'); 
$(d).blah(); 

Sử dụng attr để nhận/đặt yếu tố thuộc tính. Tôi không chắc liệu có một lớp lót có thể đổ tất cả thuộc tính của phần tử và giá trị tương ứng của chúng hay không (firebug phục vụ mục đích đó cho tôi), nhưng bạn có thể tạo một mảng với tất cả tên thuộc tính mà bạn quan tâm và làm điều gì đó như:

var attr = ['name', 'id', 'src', 'foo']; 
var len = attr.length; 
for (var i = 0; i < len; i++) 
    alert($(d).attr(attr[i])); 

hoặc sử dụng $.each:

$.each(['name', 'id', 'src', 'foo'], function(i,val) { 
    alert('Attribute: ' + val + ' Value: ' + $(d).attr(val)); 
}); 
+0

Cảm ơn. Nó rất hữu dụng. :) – Murvinlai

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