Autor | Zpráva | ||
---|---|---|---|
JaySee Profil |
#1 · Zasláno: 27. 2. 2013, 16:33:31
Ahoj,
píšu sem (z mého pohledu primitivní dotaz), ale zasekl jsem se na tomhle už 6 hodin... Mám zanořenější strukturu nečíslovaných seznamů ul > li v nichž jsou odkazy. Já znám URI odkazu a na základě něj se potřebuji dostat k <li> které ho obaluje a posunout ho nahoru v seznamu. Zkoušel jsem především konstrukce jako tato: $("li a[href]:contains('/homepage/')").each(function(){ $(this).parent("li:first").prepend("AHOJ"); }); Tyhle konstrukce ted píšu z hlavy, ale pointa je v tom, že se mi nikdy nezpracoval callback u each funkce, takže zbytek jsem nezkoušel. Pro to, abych se dostal do callbacku u each() jsem zkoušel upravovat všelijak definici prvku, nad kterým to má provádět... ale naprosto marně. Takže ještě jednou polopaticky čeho se snažím dosáhnout. Na základě URI nalézt prvek v seznamu a na jeho úrovni zanoření ho posunout na první pozici. Ještě přidám k ukázce kus toho seznamu. <ul> <li><a href="/pojistky/">pojistky</a></li> <li><a href="/hracky/">hracky</a></li> <li> <a href="/pismenka/">pismenka</a> <ul> <li> <a href="/ttt/">TTT</a> <ul> <li><a href="/dc/">dc</a></li> <li><a href="/ab/">ab</a></li> <li><strong>SELECTED</strong></li> </ul> </li> </ul> </li> </ul> |
||
Chamurappi Profil |
#2 · Zasláno: 27. 2. 2013, 16:35:58
Reaguji na JaySee:
Funkce parent je blbě nazvaná, podle argumentu neprohledává postupně všechny předky, ale jen testuje, jestli rodič vyhovuje selektoru. Potřebuješ asi spíš closest .
|
||
JaySee Profil |
#3 · Zasláno: 27. 2. 2013, 16:40:58
Chamurappi:
Díka za upřesnění s parent, ale pořád přetrvává moje potíž se vůbec dostat do callbacku funkce each. Nechápu proč. A jsem už z toho hodně frustrovanej :-( |
||
JaySee Profil |
#4 · Zasláno: 28. 2. 2013, 14:43:07
Chamurappi:
Ahoj Chamurappi, tak jsem to překopal pomocí té funkce closest a šlape to parádně. Ještě jsem místo selektoru :contains použil hledání hodnoty v atributu. Takže nakonec má funkce vypadá následovně: ofx.reorder = function () { for(var i = ofx.structure.length -1; i >= 1; i--) { var x = ofx.structure[i].level; var y = ofx.structure[i].uri; $('#leftMenu li a[href="'+y+'"]').each(function(){ $(this).closest('ul').attr("id","myfather"+x); var temp = $(this).closest('li'); $("#myfather"+x).prepend(temp); }); } } |
||
Časová prodleva: 11 let
|
0