IE有许多好用的方法,后来都被其他浏览器抄袭了,比如这个contains方法。如果A元素包含B元素,则返回true,否则false。唯一不支持这个方法的是IE的死对头firefox。
不过火狐支持compareDocumentPosition() 方法,这是W3C制定的方法,标准浏览器都支持,不过实用性性很差,因此没有什么人用,推广不开来。它的使用形式与contains差不多,但返回的不是一个布尔值,而是一个很奇怪的数值,它是通过如下方式累加计算出来的:
Bits
Number
Meaning
000000 |
0 |
元素一致 |
000001 |
1 |
节点在不同的文档(或者一个在文档之外) |
000010 |
2 |
节点 B 在节点 A 之前 |
000100 |
4 |
节点 A 在节点 B 之前 |
001000 |
8 |
节点 B 包含节点 A |
010000 |
16 |
节点 A 包含节点 B |
100000 |
32 |
浏览器的私有使用 |
PPK给出如下解决方法。
if (window.Node && Node.prototype && !Node.prototype.contains){
|
Node.prototype.contains = function (arg) {
|
return !!( this .compareDocumentPosition(arg) & 16)
|
我搞出个更短的:
HTMLElement.prototype.contains = function (B){
|
return this .compareDocumentPosition(B) - 19 > 0
|
分享到:
相关推荐
### JS List的contains方法与Array的contains方法的使用 在JavaScript中,`Array`是用于存储多个值的数据结构。然而,原生JavaScript并没有提供一个直接的`contains`方法来检查数组是否包含某个元素。通常情况下,...
在JavaScript编程语言中,`contains`方法是一种常用的字符串操作技巧,用于判断一个字符串是否包含另一个子字符串。在标准的JavaScript库中,并没有直接提供`contains`方法,但是开发者可以通过自定义函数来实现这一...
以下是对如何在JavaScript中自定义`contains`方法以及一些附加自定义方法的详细解析。 ### 自定义`contains`方法 `contains`方法用于检测一个数组是否包含某个特定元素。实现这个方法可以增强数组的实用性和查询...
然而,在早期的JavaScript版本中,数组并没有内置的contains方法。contains方法是一个非常有用的方法,用于检查数组中是否存在某个特定的值。如果数组中包含该值,contains方法通常返回true,否则返回false。由于这...
在探究HTML节点间的关系时,JavaScript 提供了两个实用的方法,即 `contains()` 和 `compareDocumentPosition()`。这两个方法在不同浏览器中的实现和使用略有差异,但都能有效地帮助开发者确定节点间的结构关系。...
JavaScript中的contains方法用于检查一个元素是否包含另一个元素。它返回一个布尔值,指示父元素是否包含指定的子元素。此方法通常用于DOM(文档对象模型)中,帮助开发者在树形结构中判断节点的包含关系。 在IE...
其中,`lodash.contains`是著名的前端开源库Lodash中的一个方法,这个库以其强大的实用性和高性能而备受推崇。Lodash,有时也被称作罗达什,是一个现代化的JavaScript实用库,它提供了大量的函数来处理常见的编程...
为了提供更丰富的功能,还可以实现更多的方法,如清空ArrayList的`clear`方法、检查是否包含特定值的`contains`方法、合并两个ArrayList的`concat`方法等。 ```javascript ArrayList.prototype.clear = function() ...
除了以上提到的方法,`jQuery` 还包含许多其他便利的功能,如选择器(如 `$:contains()`, `$:hidden`, `$:input` 等)、动画效果、AJAX 请求等,这些都大大简化了开发者的工作。同时,`jQuery` 的兼容性也比原生 `...
示例中使用了已经定义好的`contains`方法,并且由于现代浏览器已经支持`includes`方法,所以也可以使用`includes`来替代`contains`方法进行判断。在实际的项目中,我们可以根据需要选择合适的方法。 总结来说,判断...
7. `contains` 方法:此方法检查一个元素是否包含另一个元素。返回结果为布尔值,如果目标元素是调用元素的后代,则返回`true`,否则返回`false`。 8. `createElement` 方法:这个方法用于创建一个新的HTML元素。在...
JavaScript提供了多种方法来操作这些类,主要通过`Element`对象的API。以下是几个关键的方法: 1. **classList.add()**: 这个方法用于向元素添加一个或多个类。例如,如果我们想在用户点击按钮时改变某个元素的类,...
在JavaScript中,`contains`方法在原生对象里只存在于DOM元素,用于判断一个元素是否包含另一个元素作为子元素。在字符串和数组上,`contains`方法并不存在,这就要求我们如果要在JavaScript中对字符串和数组实现...
While conceptually simple, this programming model contains numerous subtleties and be- haviors that are de ned implicitly by the current Node.js implementation. This paper presents the rst ...
JavaScript 中的数组函数提供了多种方法来操作数组,包括: * `push()`: 将参数添加到原数组末尾,并返回数组的长度。 * `pop()`: 删除原数组最后一项,并返回删除元素的值。 * `shift()`: 删除原数组第一项,并...