在前端开发中会遇到一些非常类似的api但却有不同的英文名,比如同样表示包含,有contains/includes/has这三种。如何记住哪个是哪个呢?我整理了一些技巧 contains作为包含,出现在Element.classList.contains和Node.contains这两个api上,它们都是DOM API,也就是说在操作DOM时遇到包含那就是contains了 includes作为包含出现在Array.prototype.includes和String.prototype.includes上,即js中我们常用的数组和字符串上会用includes has作为判断包含的方法出现在Map/Set/WeakMap/WeakSet/Reflect/FormData上。可以发现与上面的includes 不同,这些has中传入的都是具有唯一性的key参数,即js中如果包含是具有唯一性的包含的话用has,否则是includes这个是jQuery的方法;
描述: 检查一个DOM元素是另一个DOM元素的后代。
jQuery.contains( container, contained )
container
类型: Element
DOM元素作为容器,可以包含其他元素
contained
类型: Element
DOM元素,可能被其他元素所包含
如果第二个参数所提供的DOM元素是第一个参数DOM元素的后裔,那么$.contains() 方法返回true,无论是直接的子元素或者是后代元素。否则,返回false。只支持 element 节点如果第二个参数是一个文本或注释节点,$.contains()将返回 false。