Autor | Zpráva | ||
---|---|---|---|
Miri Profil * |
#1 · Zasláno: 3. 4. 2012, 09:33:31
Ahoj, takový rychlý dotázek. Nemůžu se ale nějak dohledat i když bych asi měl.
Dejme tomu že mám takový to html <div> // první stupeň <div></div> //druhý stupeň <div> //druhý stupen <div></div> //třetí stupeň <div></div> //třetí stupeň </div> <div> //druhý stupen <div></div> //třetí stupeň <div></div> //třetí stupeň </div> </div> A ptám se jak vyberu pomocí jquery všechny divy druhého stupně a zároveň všechny sudé nebo liché? zkoušel jsem toto a nejde, nejspíš jsem to špatně pochopil. $("div > div:odd")... Předem díky za odpověd Míra |
||
Kcko Profil |
#2 · Zasláno: 3. 4. 2012, 09:54:55
Miri:
Je to dobře. Co konkrétně Ti nefunguje? Jestli s nimi potřebujes provést nějakou akci, se všemi tak poté přes each .. $("div > div:odd").each(function(index){ var div = $(this); console.log(div.attr("id")); // např. }); |
||
Miri Profil * |
#3 · Zasláno: 3. 4. 2012, 10:08:55
Změnil jsem to na toto:
$("#prehled > tr:even").each(function(index){ $(this).addClass("trsude"); }); Ale stále se mi do těchto řádků neukládá class. Nemůže to být tím #prehled ? |
||
Kcko Profil |
#4 · Zasláno: 3. 4. 2012, 19:39:08
Hod sem nebo na pastebin kompletní HTML kód (resp onen kód kde se to má vykonávat).
|
||
Chamurappi Profil |
#5 · Zasláno: 4. 4. 2012, 01:30:13
Reaguji na Miriho:
Je-li #prehled tabulka, tak <tr> není jejím přímým potomkem. Uvnitř každé tabulky je ještě <tbody> (které má nepovinné obě značky). Buď nepoužívej selektor přímého potomka, nebo uprav selektor na "#prehled > tbody > tr:even" .
Mimochodem, v normálním HTML DOMu jsou všechny řádky tabulky v kolekci rows (nehledě na skupiny řádků <tbody> , <thead> , <tfoot> ). Příštup přes selektory je méně pohodlný, protože buď musíš postupovat i přes skupiny řádků, nebo vybrat současně <tr> do libovolné úrovně zanoření. V případě vybírání sudých/lichých řádků je jQuery navíc ještě méně efektivní, protože se v novějších prohlížečích nepoužívají nativní hledací metody. Napsal bych to asi takto:
var prehled = document.getElementById("prehled"); for(var i = 1, row; row = prehled.rows[i]; i+=2) row.className += " trsude"; var prehled = $("#prehled")[0]; for(var i = 1, row; row = prehled.rows[i]; i+=2) $(row).addClass("trsude"); $.each :
$.each($("#prehled")[0].rows, function(i) { if(i % 2) $(this).addClass("trsude"); }); Pokud tvá tabulka není sestavována či přerovnávána v prohlížeči, tak je nesmysl stylovat řádky JavaScriptem, o přidělení třídy by se měl postarat už server. |
||
Miri Profil * |
#6 · Zasláno: 4. 4. 2012, 11:39:12
Chamurappi:
Super krásně to funguje ! Pokud tvá tabulka není sestavována či přerovnávána v prohlížeči, tak je nesmysl stylovat řádky JavaScriptem, o přidělení třídy by se měl postarat už server. Právě že jsou přidávány řádky do tabulky. Díky za pomoc |
||
Časová prodleva: 11 let
|
0