Рассмотрим очень полезную функцию которая находит и возвращает первый родительский элемент от текущего или заданного элемента, а делает она это по заданному имени или названию класса у родительского элемента.
Недавно понадобилась функция которая находит и возвращает первый родительский элемент от текущего элемента и чтобы находила она родительский элемент по заданному имени родительского элемента или названию класса у родительского элемента.
Порылся в нете, на сайте 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");
Думаю, данная функция очень поможет многим программистам, лично мне она очень часто бывает полезна.
Комментарии