`
guohf
  • 浏览: 419235 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript contains方法

阅读更多

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)
   }
 }

我搞出个更短的:

if(!!window.find){
  HTMLElement.prototype.contains = function(B){
    return this.compareDocumentPosition(B) - 19 > 0
  }
}

 

分享到:
评论

相关推荐

    JS List的contains方法与Array的contains方法的使用

    ### JS List的contains方法与Array的contains方法的使用 在JavaScript中,`Array`是用于存储多个值的数据结构。然而,原生JavaScript并没有提供一个直接的`contains`方法来检查数组是否包含某个元素。通常情况下,...

    自定义____js中contains方法

    在JavaScript编程语言中,`contains`方法是一种常用的字符串操作技巧,用于判断一个字符串是否包含另一个子字符串。在标准的JavaScript库中,并没有直接提供`contains`方法,但是开发者可以通过自定义函数来实现这一...

    自定义的js contains方法

    以下是对如何在JavaScript中自定义`contains`方法以及一些附加自定义方法的详细解析。 ### 自定义`contains`方法 `contains`方法用于检测一个数组是否包含某个特定元素。实现这个方法可以增强数组的实用性和查询...

    JavaScript中扩展Array contains方法实例

    然而,在早期的JavaScript版本中,数组并没有内置的contains方法。contains方法是一个非常有用的方法,用于检查数组中是否存在某个特定的值。如果数组中包含该值,contains方法通常返回true,否则返回false。由于这...

    javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系

    在探究HTML节点间的关系时,JavaScript 提供了两个实用的方法,即 `contains()` 和 `compareDocumentPosition()`。这两个方法在不同浏览器中的实现和使用略有差异,但都能有效地帮助开发者确定节点间的结构关系。...

    js contains方法实现代码

    JavaScript中的contains方法用于检查一个元素是否包含另一个元素。它返回一个布尔值,指示父元素是否包含指定的子元素。此方法通常用于DOM(文档对象模型)中,帮助开发者在树形结构中判断节点的包含关系。 在IE...

    前端开源库-lodash.contains

    其中,`lodash.contains`是著名的前端开源库Lodash中的一个方法,这个库以其强大的实用性和高性能而备受推崇。Lodash,有时也被称作罗达什,是一个现代化的JavaScript实用库,它提供了大量的函数来处理常见的编程...

    JavaScript 实现基础 ArrayList 功能

    为了提供更丰富的功能,还可以实现更多的方法,如清空ArrayList的`clear`方法、检查是否包含特定值的`contains`方法、合并两个ArrayList的`concat`方法等。 ```javascript ArrayList.prototype.clear = function() ...

    jquery和javascript的区别(常用方法比较)

    除了以上提到的方法,`jQuery` 还包含许多其他便利的功能,如选择器(如 `$:contains()`, `$:hidden`, `$:input` 等)、动画效果、AJAX 请求等,这些都大大简化了开发者的工作。同时,`jQuery` 的兼容性也比原生 `...

    JavaScript判断一个字符串是否包含指定子字符串的方法

    示例中使用了已经定义好的`contains`方法,并且由于现代浏览器已经支持`includes`方法,所以也可以使用`includes`来替代`contains`方法进行判断。在实际的项目中,我们可以根据需要选择合适的方法。 总结来说,判断...

    javascript 操作 dom 的常用方法

    7. `contains` 方法:此方法检查一个元素是否包含另一个元素。返回结果为布尔值,如果目标元素是调用元素的后代,则返回`true`,否则返回`false`。 8. `createElement` 方法:这个方法用于创建一个新的HTML元素。在...

    JavaScript 操作CSS类

    JavaScript提供了多种方法来操作这些类,主要通过`Element`对象的API。以下是几个关键的方法: 1. **classList.add()**: 这个方法用于向元素添加一个或多个类。例如,如果我们想在用户点击按钮时改变某个元素的类,...

    javascript中contains是否包含功能实现代码(扩展字符、数组、dom)

    在JavaScript中,`contains`方法在原生对象里只存在于DOM元素,用于判断一个元素是否包含另一个元素作为子元素。在字符串和数组上,`contains`方法并不存在,这就要求我们如果要在JavaScript中对字符串和数组实现...

    Semantics of Asynchronous 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 各种函数用法

    JavaScript 中的数组函数提供了多种方法来操作数组,包括: * `push()`: 将参数添加到原数组末尾,并返回数组的长度。 * `pop()`: 删除原数组最后一项,并返回删除元素的值。 * `shift()`: 删除原数组第一项,并...

Global site tag (gtag.js) - Google Analytics