Nói rằng tôi có các yếu tố sau:Loại đối tượng nào hiển thị trong bảng điều khiển dưới dạng [đối tượng văn bản]?
<p id="thingy">Here is some <em>emphasized</em> text!</p>
Trong một bảng điều khiển Javascript, tôi sẽ nhận được nội dung của nó với jQuery:
> var theContents = $('<p id="thingy">Here is some <em>emphasized</em> text!</p>').contents();
theContents
tại là một mảng trông như thế này:
> theContents
["Here is some ", <em>emphasized</em>, " text!"]
Cho đến nay rất tốt; nó có vẻ là một mảng, trong đó các phần tử 0
và 2
là các chuỗi và phần tử 1
là một đối tượng jQuery. Nếu tôi ra chỉ là yếu tố đầu tiên, có vẻ như để xác nhận tôi đoán:
> theContents[0]
"Here is some "
Tuy nhiên, nếu tôi cố gắng nối nó bằng một chuỗi khác, tôi thấy rằng tôi đang thiếu một số hiểu biết:
> 'Hello! ' + contents[0];
"Hello! [object Text]"
Vì vậy, biến đó trông giống như một chuỗi, nhưng thực tế là một số loại đối tượng. Đối với vấn đề đó, đối tượng jQuery ở giữa không hiển thị như một đối tượng thông thường, hoặc là; nó hiển thị dưới dạng đánh dấu thô.
Another question tham chiếu cùng một vấn đề nhưng không thực sự giải thích được. Tôi đã tìm thấy rằng tôi có thể sử dụng contents[0].textContent
để giải quyết vấn đề thực sự của tôi, nhưng điều đó vẫn không giúp tôi hiểu chính xác những gì đang xảy ra ở đây. Ai đó có thể giải thích cho tôi chi tiết tại sao tất cả điều này là hành xử theo cách của nó?
+1: Một minh chứng nhanh: http://jsfiddle.net/fwysq/2/ –