Я участвую в преобразовании jquery-кодов в java-скрипт для требования.преобразование jquery (.each, .find, .next) в javascript
Пример 1:
Есть несколько дочерних элементов с именем класса «child_elems» внутри родительского HTML DIV с идентификатором «parent_elem». Мне нужно динамически изменять ширину дочерних элементов. Код JQuery будет выглядеть следующим образом:
$(#parent_elem).find(.child_elems).each(function(){
$(this).css("width","50px");
});
Пример JavaScript:
var parentelem = document.getElementById("parent_elem");
var childelems = parentelem.getElementsByClassName("child_elems");
for(var i=0;i<childelems.length;i++)
childelems[i].style.width = "50px";
Это работает, но я не уверен, является ли это эффективным способом.
Можем ли мы выполнить ту же задачу без использования цикла? Есть ли эквивалент для .each
, .next
, .find
в javascript?
Я очень новичок в javascript и jquery, а также буду благодарен за любые предложения.
Почему вы хотите избежать цикла 'for'? Это естественный выбор для выполнения некоторых действий над списком элементов. Метод '.each()' jQuery реализуется с использованием цикла 'for'. jQuery - это «просто» набор функций, написанных на JavaScript, поэтому вы можете увидеть, как работают функции, о которых вы говорили, если вы смотрите в файле [jQuery.js] (http://code.jquery.com/jquery-1.10.1 .js). – nnnnnn
Почему вы хотите удалить jQuery? – amhed
«Есть ли эквивалент для .each, .next, .find в javascript»? Если бы существовал эквивалент кросс-браузера, почему команда jQuery реализовала бы эти версии? – sabithpocker