Autor Zpráva
Charlie22
Profil *
Co je spatne na tomto zapisu. v jQuery 1.2.6 pracuje normalne v 1.3 bohuze :-( vymaze vse an jen prvni prvek.
<script type="text/javascript" src="js/jquery-1.3.min.js"></script>
<script type="text/javascript">
$(function(){
	$('#menu li a:first-child').remove();
});
</script>


</head>

<body>
<ul id="menu">
	<li><a href="index.php">Home</a></li>
	<li><a href="rules.php">Rules</a></li>
	<li><a href="#">Pilots</a></li>
	<li><a href="#">Briefing</a></li>
	<li><a href="#">IGC</a></li>
	<li><a href="#">Results</a></li>
	<li><a href="#">Forum</a></li>
</ul>
</body>
</html>
Str4wberry
Profil
Pokud bych na to šel logikou CSS, tak:
$('#menu li:first-child').remove();
Charlie22
Profil
jo, tohle funguje..proc podle logiky je selector "a" nadbytecny?? Jak vyberu tedy prvni link, pokud polozka Home bude bez odkazu??
Str4wberry
Profil
Stačí se zamyslet nad tím, co dělá first-child:

„Je aplikován na všechny elementy, které jsou prvním dítětem (first child) jiného elementu.“
   — praví článek na Intervalu

Tvůj původní selektor tedy v každém <li> hledá první element <a>. Najde jej v první položce? Najde a odstraní. Najde jej v druhé? Najde a odstraní. Takto to bude až dokonce.


Jak vybrat první <a>? Zřejmě takto:
$('#menu a:first-child').remove();
Budeme hledat první <a> v <ul> s id menu. Takto je to v CSS.
Charlie22
Profil
tak vyreseno:
$('#menu a:first') //vybere první link
$('#menu li:first') //vybere první položku v seznamu


diky vsem..


tak mi to nedalo a pripojil jse na officialni diskusni skupinu jQuery a nakonec to vypada, ze jsem objevil chybu v jQuery 1.3
jQuery forum


jQuery Bug Tracker

Moderátor Str4wberry: Své příspěvky můžeš měnit, čiň tak namísto vkládání několika za sebou v krátkém časovém sledu.
srigi
Profil
Myslim, ze to nie je bug, Str4wberry-ho vysvetlenie jt IMO dovod, preco to odstranuje vo vsetkych polozkach zoznamu. Bug bol teda v 1.2.6.
Charlie22
Profil
přečti si bug tracker, viz link výše...je to definitivně chyba, která byla uz zminena v ticketu 3873. Jedná se o chybu v multi selectoru. Inak bych se rad dozvedel, co je na selectoru
#menu li a
proti logice CSS???
panther
Profil
Charlie22
Inak bych se rad dozvedel, co je na selectoru #menu li a proti logice CSS???
Nic, mělo by?

Možná je tam nadbytečné „li“, pokud je #menu seznamem - jiný obsah než položku by obsahovat neměl.
Charlie22
Profil
no pravda to sice je, ale pokud by seznam nemel ID a byl by jen obalenej DIVem?? tak bych to zapsal jak???
panther
Profil
Charlie22
tak bych to zapsal jak???
stačí jen jeden otazník na konci

ale pokud by seznam nemel ID a byl by jen obalenej DIVem?
a má cenu obalovat menu divem, když mu můžeš dát id a stylovat přímo jej?

Pokud tam ten div mermomocí chceš, tak:
div#menu ul a = div#menu ul li a
Charlie22
Profil
za otazníky na víc se omlouvám, ale zrovna mi přišla nová zásilka :-)
Já myslím, že taková situace muze klidně nastat, kdy potrebujes mit menu v DIVu, ale na druhé straně máš pravdu, že menu může mít vždycky svoje ID pro jednoduchost...diky za konzultaci

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: