Eine Funktion, die den N -ten Elementknoten erhält, kann jetzt nur Elemente über das HTML -Tag erhalten, und seine Funktion ist nicht perfekt.
Demo: Html
<ul id = "list"> <li> 1 <button> a </button> </li> <li> 2 <taste> b </button> <button> o </button> </li> <p> test </p> <li> 3 <Button> c </button> </li> <li> 4 </ul> </li> 5 </button
JS:
/**** @param übergeordnete Node*@param ele Element -Label zu wählen*@param num, welches Element das erste*@return {*}*/function nth (übergeordnet, ele, num) {var _ele = array.prototype Das speichert nur Elementknoten für (var i = 0, len = _ele.length; i <len; i ++) {if (_ele [i] .nodetype == 1) {eLearray.push.push (_ELE [i]); // filtern nicht elementknoten}} id (Argumente). Nummer, wählen Sie die Anzahl der Elemente unter dem übergeordneten Knoten. return _ele;} else if (Typeof Argumente [1] === "Nummer") {return eLearray [Argumente [1]];}} else {// Wenn die Parameter abgeschlossen sind, kehren Sie zum Knoten zurück und der Index startet mit 0_ELE = Array.Prototype.slice.call (ParentsByLementsByName (Elektagname)); _ele [num];}}/*test*/var list = document.getElementById ("list"); console.log (nth (list, "li", 2) .innerhtml); // Die dritte Li -Element -Konsole auswählen. console.log (nth (nth (list, "li", 1), "button", 1) .innerhtml); // Die zweite Schaltfläche Konsole.log (nth (nth (liste, "li", 1), "Taste")); // Alle Schaltfläche "Schaltfläche" -Log (NTH (NTH (LISTE, 2)); // Das zweite Element auswählen.