Функция, которая получает NTH Element Node, теперь может получать элементы только через тег HTML, и его функция не идеальна.
Демо: HTML
<ul id = "list"> <li> 1 <tood> a </button> </li> <li> 2 <Tood> b </button> <tood> o </button> </li> <p> test </p> <li> 3 <Tood> C </button> </li> <li> 4 </ptuture> </li> <li> 5 </li> </li> </li> </li>
JS:
/**** @param родительский родительский узел*@param Ele Element Label, чтобы выбрать*@param num, который является первым*@return {*}*/function nth (parent, ele, num) {var _ele = array.prototype.slice.call (parent.childnodes), elearray = []; // converte node node node node node node node_ alear. Массив, которые хранят только узлы элементов для (var i = 0, len = _ele.length; i <len; i ++) {if (_ele [i] .nodetype == 1) {elearray.push (_Ele [i]); // отфильтровать неэлементы}} if (argirs.lengle = indue = winders = winders = if wy (if argirls.lengle = winder wylen. Параметр - это число, выберите количество элементов под родительским узлом .//if Второй параметр - это строка, выберите узел, представленный всеми параметрами под родительским узлом if (typeof arguments [1] === "string") {_ ele = array.prototy.slice.call (parent.getelementsbytagname (arguments [1]); return _ele;} else if (typeof arguments [1] === "number") {return elearray [Arguments [1]];}} else {// Если параметры завершены, вернитесь в узел, а индекс начинается с 0_Ele = array.prototype.slice.call (parent.getelementsbytagname (ele); _Ele [num];}}/*test*/var list = document.getElementbyid ("list"); console.log (nth (list, "li", 2) .innerhtml); // Выберите третью консоль элемента Li. console.log (nth (nth (list, "li", 1), "button", 1) .innerhtml); // выберите вторую кнопку console.log (nth (nth (list "li", 1), "кнопка"); // Выберите все кнопку консоли.