elementLike - bhsd-harry/wikiparser-node GitHub Wiki
This is an internal document. For visitors, you can now go back to the home page.
// children (main)
var {elementLike} = require('../mixin/elementLike');
var a = {type: 'a'},
b = {type: 'text'},
ElementLike, token;
class S {
childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.deepStrictEqual(token.children, [a]);
// firstElementChild (main)
var {elementLike} = require('../mixin/elementLike');
var a = {type: 'text'},
b = {type: 'b'},
ElementLike, token;
class S {
childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.firstElementChild, b);
// lastElementChild (main)
var {elementLike} = require('../mixin/elementLike');
var a = {type: 'a'},
b = {type: 'text'},
ElementLike, token;
class S {
childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.lastElementChild, a);
// childElementCount (main)
var {elementLike} = require('../mixin/elementLike');
var a = {type: 'a'},
b = {type: 'text'},
ElementLike, token;
class S {
childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.childElementCount, 1);
// querySelector (Node.js)
var {elementLike} = require('../mixin/elementLike');
var a = {type: 'a'},
b = {type: 'b'},
ElementLike, token;
class S {
childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.querySelector('a'), a);
// querySelectorAll (Node.js)
var {elementLike} = require('../mixin/elementLike');
var childNodes = [{type: 'text'}],
ElementLike, token, child;
class S {
get childNodes() {
return childNodes.includes(this) ? [] : childNodes;
}
}
ElementLike = elementLike(S);
token = new ElementLike();
child = new ElementLike();
child.type = 'b';
childNodes.push(child);
assert.deepStrictEqual(token.querySelectorAll('b'), [child]);
// escape (Node.js)
var {elementLike} = require('../mixin/elementLike');
var i = 0,
a = {
escape() {
i++;
},
},
ElementLike, token;
class S {
childNodes = [a, a];
}
ElementLike = elementLike(S);
token = new ElementLike();
token.escape();
assert.strictEqual(i, 2);
// getElementByTypes (main)
var {elementLike} = require('../mixin/elementLike');
var a = {type: 'a'},
b = {type: 'b'},
ElementLike, token;
class S {
childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.getElementByTypes('a, b'), a);
// getElementById (main)
var {elementLike} = require('../mixin/elementLike');
var a = {id: 'a'},
b = {id: 'b'},
ElementLike, token;
class S {
childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.getElementById('a'), a);
// getElementsByClassName (main)
var {elementLike} = require('../mixin/elementLike');
var childNodes = [{type: 'text'}],
ElementLike, token, child;
class S {
get childNodes() {
return childNodes.includes(this) ? [] : childNodes;
}
}
ElementLike = elementLike(S);
token = new ElementLike();
child = new ElementLike();
child.classList = new Set('b');
childNodes.push(child);
assert.deepStrictEqual(token.getElementsByClassName('b'), [child]);
// getElementsByTagName (main)
var {elementLike} = require('../mixin/elementLike');
var childNodes = [{type: 'text'}],
ElementLike, token, child;
class S {
get childNodes() {
return childNodes.includes(this) ? [] : childNodes;
}
}
ElementLike = elementLike(S);
token = new ElementLike();
child = new ElementLike();
child.type = 'ext';
child.name = 'b';
childNodes.push(child);
assert.deepStrictEqual(token.getElementsByTagName('b'), [child]);