Improve this Doc  View Source

angular.element

  1. - function in module ng

Overview

Wraps a raw DOM element or HTML string as a jQuery element.

If jQuery is available, angular.element is an alias for the jQuery function. If jQuery is not available, angular.element delegates to AngularJS's built-in subset of jQuery, called "jQuery lite" or jqLite.

jqLite is a tiny, API-compatible subset of jQuery that allows AngularJS to manipulate the DOM in a cross-browser compatible way. jqLite implements only the most commonly needed functionality with the goal of having a very small footprint.

To use jQuery, simply ensure it is loaded before the angular.js file. You can also use the ngJq directive to specify that jqlite should be used over jQuery, or to use a specific version of jQuery if multiple versions exist on the page.

Note: All element references in AngularJS are always wrapped with jQuery or jqLite (such as the element argument in a directive's compile / link function). They are never raw DOM references.
Note: Keep in mind that this function will not find elements by tag name / CSS selector. For lookups by tag name, try instead angular.element(document).find(...) or $document.find(), or use the standard DOM APIs, e.g. document.querySelectorAll().

AngularJS's jqLite

jqLite provides only the following jQuery methods:

jqLite also provides a method restoring pre-1.8 insecure treatment of XHTML-like tags. This legacy behavior turns input like <div /><span /> to <div></div><span></span> instead of <div><span></span></div> like version 1.8 & newer do. To restore it, invoke:

angular.UNSAFE_restoreLegacyJqLiteXHTMLReplacement();

Note that this only patches jqLite. If you use jQuery 3.5.0 or newer, please read the jQuery 3.5 upgrade guide for more details about the workarounds.

jQuery/jqLite Extras

AngularJS also provides the following additional methods and events to both jQuery and jqLite:

Events

Methods

Known Issues

You cannot spy on angular.element if you are using Jasmine version 1.x. See https://github.com/angular/angular.js/issues/14251 for more information.

Usage

angular.element(element);

Arguments

Param Type Details
element stringDOMElement

HTML string or DOMElement to be wrapped into jQuery.

Returns

Object

jQuery object.