Задать вопрос

Как переписать такой jQuery код на чистом Javascript?

В частности, как написать функцию поиска предков?

el.parents("li").children('input[type="checkbox"]').prop({
                  indeterminate: true,
                  checked: false
              });
  • Вопрос задан
  • 2794 просмотра
Подписаться 4 Оценить Комментировать
Решения вопроса 1
@Denis479 Автор вопроса
Решил проблему следующим образом, исходники jquery не смотрел, просто сам посидел, подумал и наваял ;)) Вдруг кому пригодится:

function parentsMy(elem, tagName, stopTagName) {
	if(elem == null) return;
        
        //если параметр не задан, то ищем до body
        stopTagName = stopTagName || 'body';

	var set = [];

	while(elem.tagName.toLowerCase() != stopTagName.toLowerCase()) {
		if(elem.tagName.toLowerCase() == tagName.toLowerCase()) {
			set.push(elem);
		}

		elem = elem.parentNode;
	}	

        //возвращаем массив с родителями
	return set;
}


element - нода, с которой начинаем поиск родителей(по DOM-дереву вверх)
tagName - тэг ноды по которому ищем родителей
stopTagName - где останавливаемся
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
romanzhak
@romanzhak
Mathematician
// получаете все тэги a, например
var a = document.getElementsByTagName("a");
// затем отсеиваете всех родителей 
a[ item ].parentNode.nodeName.toLowerCase() === "li"
Ответ написан
Комментировать
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Те, кто могут писать на таком же уровне, как разработчики jquery - не задают подобных вопросов, те, кто не умеют - используют jquery.
Вы можете посмотреть саму библиотеку и попытаться оттуда вытянуть. Или дождаться, когда Вам напишут какой-нибудь велосипед, который в лучшем случае будет работать также, как jquery, а скорее всего хуже.
Используйте jquery, а свое время потратьте на другие проблемы.
Ответ написан
@bogomazov_vadim
Возникла такая ситуация что пришлось код на query переписать на javascript, прихоть начальства

Раз такая ситуация, то может пригодится - youmightnotneedjquery.com
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы