-
-
Notifications
You must be signed in to change notification settings - Fork 106
Expand file tree
/
Copy pathXMLNodeList.coffee
More file actions
28 lines (20 loc) · 678 Bytes
/
XMLNodeList.coffee
File metadata and controls
28 lines (20 loc) · 678 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Represents a list of nodes
module.exports = class XMLNodeList
# Initializes a new instance of `XMLNodeList`
# This is just a wrapper around an ordinary
# JS array.
#
# `nodes` the array containing nodes.
constructor: (@nodes) ->
# DOM level 1
Object.defineProperty @::, 'length', get: () -> @nodes.length or 0
# Creates and returns a deep clone of `this`
#
clone: () ->
# this class should not be cloned since it wraps
# around a given array. The calling function should check
# whether the wrapped array is null and supply a new array
# (from the clone).
@nodes = null
# DOM Level 1
item: (index) -> @nodes[index] or null