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

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

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

Порылся в нете, на сайте 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, 06:47 коммент полезен : +1 # Vladimir
    • действительно, если использовать jQuery, то closest полная замена данной функции (yea)
      10 мая 2010, 09:00 коммент полезен : 0 # Admin
Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Введите изображенные цифры:
Captcha
Главная
X

youtube.com/watch?v=7hFivbgIEqk

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

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