The isConnected read-only property of the Node interface returns a boolean indicating whether the node is connected (directly or indirectly) to the context object, for example the Document object in the case of the normal DOM, or the ShadowRoot in the case of a shadow DOM.
Syntax
var isItConnected = nodeObjectInstance.isConnected
Return value
A Boolean that is true if the node is connected to its relevant context object, and false if not.
Examples
Standard DOM
A standard DOM example:
let test = document.createElement('p');
console.log(test.isConnected); // Returns false
document.body.appendChild(test);
console.log(test.isConnected); // Returns true
Shadow DOM
A shadow DOM example:
// Create a shadow root
var shadow = this.attachShadow({mode: 'open'});
// Create some CSS to apply to the shadow dom
var style = document.createElement('style');
console.log(style.isConnected); // returns false
style.textContent = `
.wrapper {
position: relative;
}
.info {
font-size: 0.8rem;
width: 200px;
display: inline-block;
border: 1px solid black;
padding: 10px;
background: white;
border-radius: 10px;
opacity: 0;
transition: 0.6s all;
positions: absolute;
bottom: 20px;
left: 10px;
z-index: 3
}
`;
// Attach the created style element to the shadow dom
shadow.appendChild(style);
console.log(style.isConnected); // Returns true
Polyfill
Node.isConnected can be polyfilled with the following code for IE10 and EdgeHTML:
/*
* Node.isConnected polyfill for IE and EdgeHTML
* 2020-02-04
*
* By Eli Grey, https://eligrey.com
* Public domain.
* NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
*/
if (!('isConnected' in Node.prototype)) {
Object.defineProperty(Node.prototype, 'isConnected', {
get() {
return (
!this.ownerDocument ||
!(
this.ownerDocument.compareDocumentPosition(this) &
this.DOCUMENT_POSITION_DISCONNECTED
)
);
},
});
}
Specifications
| Specification | Status | Comment |
|---|---|---|
| DOM The definition of 'isConnected' in that specification. |
Living Standard | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
isConnected | Chrome Full support 51 | Edge Full support 79 | Firefox Full support 53 | IE No support No | Opera Full support 38 | Safari Full support 10.1 | WebView Android Full support 51 | Chrome Android Full support 51 | Firefox Android Full support 45 | Opera Android Full support 41 | Safari iOS Full support 10.3 | Samsung Internet Android Full support 6.0 |
Legend
- Full support
- Full support
- No support
- No support
