Находим самый первый элемент среди родительских

Рассмотрим очень полезную функцию которая находит и возвращает первый родительский элемент от текущего или заданного элемента, а делает она это по заданному имени или названию класса у родительского элемента.

Недавно понадобилась функция которая находит и возвращает первый родительский элемент от текущего элемента и чтобы находила она родительский элемент по заданному имени родительского элемента или названию класса у родительского элемента.

Порылся в нете, на сайте jQuery, но найти не смог, поэтому написал свою, которую Вы можете наблюдать ниже.

function firstParent(e, name){
	if(e && typeof(e[0])=="object"){ e = e[0]; }
	var finded = null;
	if(name.substr(0,1)=="."){ var findClass = name.substr(1); }else{ var findClass = null; }
	while(e){
		e = e.parentNode;
		if(e && typeof(e)=="object"){
			if(findClass){
				if( $(e).hasClass( findClass ) ){
					finded = e;
					e = null;
				}
			}else{
				if(e.tagName==name){
					finded = e;
					e = null;
				}
			}
		}else{
			e = null;
		}
	}
	return finded;
}
jQuery.fn.firstParent = function(name){
	var e = firstParent(this, name);
	return $(e);
};

Применять данную функцию можносайт источник http://yapro.ru Sat Mar 13 2010 15:23:28 GMT+0300 так:

// с применения jQuery
var form = $("#elementID").firstParent("FORM");

alert( form[0].tagName );// проверим название тега, который нашелся

$("#elementID").firstParent(".mceEditor").prev().attr("name", "Прекрасно");

// более сложный пример:
$("textarea").change(function(){
	// автоматическая пометка к сохранению тех полей, которые изменены
	$(this).firstParent("TR").find("[name^=save]").attr("checked","checked");
});

// без применения jQuery
var TR = firstParent( document.getElementById("elementID"), "TR");

Думаю, данная функция очень поможет многим программистам, лично мне она очень часто бывает полезна.

Оцени публикацию:
  • 2,10
Оценили человек: 2
  •  

Похожие статьи:


Комментарии посетителей:
  • jQuery('#element').closest('выражение'), нет?
    07 мая 2010, 10:47 коммент полезен : +1 # Vladimir
    • действительно, если использовать jQuery, то closest полная замена данной функции (yea)
      10 мая 2010, 13:00 коммент полезен : 0 # Admin

Предложения и пожелания:
Ваше имя: Ваш E-mail:
Введите изображенные цифры:
Captcha

HTML (19)

CSS (36)

PHP (21)

MySQL (14)

JavaScript (57)

Flash (6)

XML (3)

Apache (34)

Дизайн (35)

Продвижение (31)

Программы (26)

Unix (11)

Интересное (37)


Справочники и учебники:


Последние комменты:

Новые заметки:

Защита сервера от ошибок в phpMyAdmin

HTML5 - новые виды атак

Социальные рекомендации Twitter в Google

Ашманов про стартапы

Skype Distributed Database Architecture

Erlang - лекарство при высоких нагрузках

Amazon Web Services: инструменты обеспечения масштабируемости и отказоустойчивости

Обсуждения на форуме:

некорректно отображается страница в браузерах

не могу войти в admin

Нужна критика идеи

Поиск по дополнительным полям и формам

Вопрос по категориям

Несколько вопросов по проекту.

Плагины, меню и интеграция

Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter| Здравствуйте, Гость | Войти | Регистрация| Карта сайта | RSS ленты
О проекте | Скачать CMS | Видеоуроки | Документация | Плагины | Форум | Идеи | Новости | Веб-мастеру | Контакты

YaPro CMS в Живом Журнале

YaPro CMS в Твитере

YaPro CMS в Одноклассниках

YaPro CMS в Яндекс.Блогах


youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2012 YaPro.Ru


Главная » Веб-мастеру » JavaScript »