Es gibt ein paar Möglichkeiten, dies zu tun.
Entweder einer der folgenden sollte den Trick tun.
// METHOD A (ARRAY.FILTER, STRING.INDEXOF)
var siblings = function(node, children) {
siblingList = children.filter(function(val) {
return [node].indexOf(val) != -1;
});
return siblingList;
}
// METHOD B (FOR LOOP, IF STATEMENT, ARRAY.PUSH)
var siblings = function(node, children) {
var siblingList = [];
for (var n = children.length - 1; n >= 0; n--) {
if (children[n] != node) {
siblingList.push(children[n]);
}
}
return siblingList;
}
// METHOD C (STRING.INDEXOF, ARRAY.SPLICE)
var siblings = function(node, children) {
siblingList = children;
index = siblingList.indexOf(node);
if(index != -1) {
siblingList.splice(index, 1);
}
return siblingList;
}
Zur Info: Die jQuery-Code-Basis ist eine großartige Ressource für Grade A Javascript beobachten.
Hier ist ein hervorragendes Tool, das die jQuery Code-Basis in einer sehr stromlinienförmigen Art und Weise zeigt. http://james.padolsey.com/jquery/
Hinweis bekommt, dass jquery.siblings() aus der Ergebnismenge den aktuellen Knoten ausschließt. – cletus
Was ist ein sehr schönes Feature! – cgp
Eigentlich ist das Äquivalent von node.parentNode.childNodes [] in jquery wirklich $ (node) .parent(). Children() nicht $ (node) .siblings(). Es kann ein nettes Feature sein, aber es kann auch nervig sein. Es hängt davon ab, was Sie wollen. – cletus