| 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: 14 let
|
|||
0