kkuubbaa88
2.01.2010, 18:56:53
na stronie mam divy wyswietlone w taki sposob:
<div id="jakaś nazwa"></div>
<div id="coś ktoś ma"></div>
<div id="dawno temu"></div>
...itd.
teraz mam input=text i name=wyszukaj w ktorym chce wpisac np słowo "coś" to pozostaje wyswietlony tylko div, ktory ma w nazwie id słowo coś. Wszystko sie to dzieje automatycznie, dlatego chce to dac w akcji onchange. Potrzebuje tylko strukture funkcji, aby odebrać wartość z inputa i w jakis sposob dac wszystkich pozostalym diva visible=disable. Jak cos takiego zrobic ?
phpion
2.01.2010, 18:58:28
Nie lepiej poprzez klasy? Nadajesz odpowiednie klasy elementom i filtrujesz po klasach, a nie po fragmentach identyfikatorów.
kkuubbaa88
2.01.2010, 19:03:39
u mnie klasa jest u kazdego taka sama, poniewaz po niej daje style. Dlatego potrzebuje to zrobic na id.
phpion
2.01.2010, 19:04:34
Przecież możesz nadać kilka klas jednemu elementowi: <element class="klasa1 klasa2 klasa3" />
kkuubbaa88
2.01.2010, 19:15:23
dobrze wiedziec

tylko dlaczego lepiej jest to robic na klasach ? co to daje ? co to zmienia ?
phpion
2.01.2010, 19:29:46
To, że w ten sposób prościej rozwiązać Twój problem.
kamil4u
2.01.2010, 19:34:39
Ogólnie nie wiem po co Ci to, ale masz:
Kod
<div id="main">
<div id="jakas_nazwa">jakas_nazwa</div>
<div id="cos_ktos_ma">cos_ktos_ma</div>
<div id="dawno_temu">dawno_temu</div>
</div>
<input onChange="test(this.value);">
<script>
function test(value){
var el = document.getElementById('main').getElementsByTagName('div');
for(e in el){
if(el[e].id){
var re = new RegExp(value,"g");
if( re.test(el[e].id) )
el[e].style.color="green";
else
el[e].style.color="";
}
}
}
</script>
PS. ID nie powinno zawierać polskich znaków i spacji
kkuubbaa88
2.01.2010, 19:35:44
a w jaki sposob ? moze jakis przyklad w javascriptcie ?
nie wiem w jaki sposob chowac niepasujace divy. Czy zapisac wszystkie nazwy do tablicy i jakos w petli to obslugiwac ? czy cos w tym stylu ? jak wlasnie rozwiazac ten problem ?
Cytat
PS. ID nie powinno zawierać polskich znaków i spacji
Cytat
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
http://www.w3.org/TR/html4/types.html#h-6.2Cytat
Czy zapisac wszystkie nazwy do tablicy i jakos w petli to obslugiwac ? czy cos w tym stylu ? jak wlasnie rozwiazac ten problem ?
A po co, skoro rolę tej tablicy może pełnić drzewo DOM? Nie wiem w ogóle, po co usilnie chcesz nadać identyfikatory tym warstwom...
kkuubbaa88
2.01.2010, 21:33:36
chcialem to zrobic na id, poniewaz w jakis posob musze rozrozniac te nazwy, a to mi wpadlo do glowy. senk w tym, ze kazdy div ma w sobie wlasnie taką polska nazwe, a formularz ma je selekcjonować. Uzytkownik do inputa wpisuje polskie znaki i spacje, dlatego ja też musze je mieć gdzieś zapisane.
nie chce tego robic za pomoca ajaxa, poniewaz za kazdym razem bedzie sie laczyc z baza danych. Chce to raz pobrac z bazy i operowac juz na wyswietlonych za pomoca javascript.
Pawel_W
2.01.2010, 21:52:59
to nadaj każdemu divowi jakiś atrybut, np. <div rel="specjalna nazwa czy co ty tam chcesz...">
i potem sprawdzasz czy attributes['rel'].value zawiera szukaną frazę
kkuubbaa88
3.01.2010, 11:49:44
a jezeli nie bede mial id tylko atrybut, to w jaki sposob sie podpiac pod odpowiedniego diva ? bo w tym wypadku to juz mi nie pomoze:
var zmienna = document.getElementById('nazwa')
Pawel_W
3.01.2010, 13:24:08
musisz zebrać wszystko, np.
divy = document.getElementsByTagName('div');
potem robisz 'loopa' z warunkiem, np.:
for(i=0;i<divy.length;i++)
{
// tutaj kod wyszukiwarki ;)
}
więcej nie mogę powiedzieć, musisz się sam domyślić
kamil4u
3.01.2010, 22:24:04
Cytat
więcej nie mogę powiedzieć, musisz się sam domyślić winksmiley.jpg
Przecież podałem cały kod! Zmienienie go z id na rel to kwestia 30s
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.