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]);