[ Príspevkov: 22 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56 | 56

chcem si spravit fciu erase() napriklad ..ktora by zacinala takto
Kód:
$("a.erase").click(function(){
....
});


namiesto "..." potrebujem doplnit kod ktory mi najde najblizsi input PRED tymto elementom na ktory bude kliknute...a to neviem ako :( ... aby som inputu mohol nastavit value = ""... viete mi pomoct?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0

DOM je v podstate strom, takže najbližší pred môže znamenať všeličo (záleží to od toho, aký html kód tam používaš).


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...

Toto by nefungovalo??

$("a.erase").click(function(){ $("a.erase").prev("input").value="bla" });


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 09.03.2011 22:15 | najst najblizsi input pre daným elementom

skor takto ale ani to NEJDE :(...to co si napisal by nefungovalo ak by si mal na jednej stranke viac a.erase lebo by nevedelo ktory input ma brat...

Kód:
                function erase(){
                    $("a.erase").click(function(e){
                        var $target = $(e.target).prev("input");
                        $target.value = "";
                    });
                }


Offline

Čestný člen
Čestný člen
najst najblizsi input pre daným elementom

Registrovaný: 09.05.05
Prihlásený: 16.01.26
Príspevky: 1294
Témy: 69 | 69
Bydlisko: - - -

pouzivaj `this` ked chces vediet na ktoru linku si prave klikol.

Kód:
$('a.erase').click(function(){
  var input = $(this).prev('input');
  input.val('');
});


nezabudaj ze input musi byt sibling..


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 10.03.2011 13:10 | najst najblizsi input pre daným elementom

rad by som povedal ze to funguje...ale nefunguje :/ preco?


Offline

Čestný člen
Čestný člen
najst najblizsi input pre daným elementom

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno

Lebo to mas pokazene. Posli odkaz na zivu ukazku alebo ukaz svoj kod cez jsfiddle.net.


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...

Ja by som sa pridal ak dovolíte, lebo som sa do toho zaplietol a keďže je to to isté, tak nechcem zakladať novú tému.
Tu je kód: http://jsfiddle.net/p5XEp/3/
Ten kód funguje ako má, ale keď do funkcie prev pridám argument napr. prev("div"), tak to fungovať prestane.
Nechápem prečo?


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 27.11.10
Prihlásený: 20.08.13
Príspevky: 112
Témy: 18 | 18

Mne to ide...
http://jsfiddle.net/p5XEp/6/


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...

Ando:
To by mohlo byť riešenie pre DeeJaya, ale mňa by zaujímalo, prečo ten tvoj príklad prestane fungovať keď medzi ten klikač a ten input pridám niečo iné, ako napr. tu: http://jsfiddle.net/p5XEp/7/
Lebo podĺa dokumentácie by to fungovať malo. Načo iné je tam potom voliteľný argument???

EDIT:
Ako vidno vadí tam akýkoľvek iný element, ktorý by sa ocitol medzi klikačom a prev(). Ale fakt nechápem, načo je tam potom ten voliteľný argument.


Offline

Čestný člen
Čestný člen
najst najblizsi input pre daným elementom

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno

Lebo tak funguje metoda prev(). Ty skor potrebujes http://api.jquery.com/prevAll/ alebo este lepsie http://api.jquery.com/prevUntil/


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 10.03.2011 17:00 | najst najblizsi input pre daným elementom

no ja tam tiez mam medzi tym nejaky iny element...preto mi to neslo...ako to inak napisat ???


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...

No tak pre to čo som chcel, by to mohlo vyzerať takto: http://jsfiddle.net/p5XEp/9/
Len je tam zaujímavé, že prevAll() vracia objekt, ktorý má prvky zoradené od konca. Moc elegantné mi to celé teda nepripadá. Čakal som že funkcia prev() bude fungovať lepšie...

EDIT:
sorry už je ten link opravený...


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0

DeeJay3 píše:
no ja tam tiez mam medzi tym nejaky iny element...preto mi to neslo...ako to inak napisat ???
A ako teda vyzerá ten tvoj html kód?


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 11.03.2011 8:09 | najst najblizsi input pre daným elementom

teda nie element ale mam to v tabulke
Kód:
<table class="inner auto" cellspacing="0">
                    <tbody>
                        <tr>
                            <td>
                                <input type="text" name="platnost" id="platnost" value="" />
                                &nbsp;&nbsp;
                            </td>
                            <td>
                                <a class="erase"/>
                            </td>
                        </tr>
                    </tbody>
                </table>


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...

Tam bude problém v tom, že ten input neni sibling...

A mohlo by to vyzerať snáď takto: http://jsfiddle.net/p5XEp/10/
A children() nema problem ani s inymi elementami v danej bunke: http://jsfiddle.net/p5XEp/12/

Super vecička tento jsfiddlle :)


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 12.03.2011 11:29 | najst najblizsi input pre daným elementom

jj ide to dikes....

// pridané po 19 hodinách 24 minútach od posledného príspevku

Kód:
$(this).parent().prev().children("input").attr("value", "");


a mohol by mi to niekto trocha objasnit??...funguje to ale nejak tomu nechapem aj ked som si precital dokumentaciu :/...
tejto postupnosti nerozumiem: parent().prev().children("input")

teraz napriklad potrebujem napisat fciu ktora mi vlozi vsetky udaje do elementu (select) ktory sa nachadza najblizsie ZA kliknutym elementom...cize nasledujuci element select


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0

To je taký problém dať tým elementom nejaké id? Napr. <a> sa dá item_1, tomu editu zase item_1_text ...

Ak sa to tak nedá, lebo to máš zložitejšie, tak to máš urobené zle a urob to ešte raz a rozumne (spoliehať sa v javascripte na presný tvar html kódu nie je podľa mňa rozumné).


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 12.03.2011 11:54 | najst najblizsi input pre daným elementom

samozrejme ze sa to da...prave tak to teraz mam spravene...ale dosiel som k problemu ktory mi to robi nepouzitelnym...trochu ti ho popisem:

mal som dve selecty...prvy #druh_zariadenia v ktorom som si vybral druh zariadenia cez onchange $(this).val(). postom cez ajax poslal do suboru v ktorom som vytiahol vsetky zariadenia podla value aku som v tomto selecte vybral a options vlozit do druheho selectu #zariadenia..ALE ...vyskytol sa problem ze potrebujem na stranke prepojit jedno zariadenie z inym TAKZE: potrebujem vybrat druh zariadenia a zariadenie pre PRVE a vybrat druh zariadenia a zariadenie pre DRUHE zariadenie...to znamena ze uz tam ID na tie elementy pouzit nemozem lebo by tam boli dvakrat...tieto dve selecty su VZDY za sebou preto tam ziadny problem nastat nemoze a mozem to spravit takto..len potrebujem pomoct
Kód:
   <table>
        <tr>
            <td align="left">
                <select name="druh_zariadenia" id="druh_zariadenia" >
                    <option value=""></option>
                    <option value="3" >druh 3</option>
                    <option value="4" >druh 4</option>
                    <option value="5" >druh 5</option>
                </select>
            </td>

            <td align="left">
                <select name="zariadenie" id="zariadenie" >
                    <option value=""></option>
                </select>
            </td>
        </tr>
   </table>

js:
Kód:
$("#druh_zariadenia").change(function() {
            $.ajax({
                url: 'site.php/get_zariadenia/'+$(this).val(),
                dataType : 'json',
                success : function(data){
                        $("#zariadenie").html(data.content);
                },
                error : function() {
                    alert('chyba');
                }
            });
        });


ak tie selecty dam dvakrat za sebou on nevie do ktoreho ma vlozit tie udaje preto potrebujem tento riadok $("#zariadenie").html(data.content); nahradit takym ze to vlozi do najblizsieho selectu


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0

Ty tam máš teda dve zariadenia? Ak áno, to je problém použiť ID zariadenie1 a zariadenie2? Prípadne môžeš použiť class.


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...

deeJay:
Tu nájdeš všetko, čo som použil v tvojom prípade: http://jquery-navod.cz/kategorie-selektory/4-selektory
Ak nechápeš, čo znamenajú slová parent, children, sibling a prev tak si treba pozrieť niečo o štruktúre DOM.

chrono:
Ale ako rozlíšiš v tom riadku - $("#zariadenie").html(data.content); - do ktorého sa to má vložiť?? Musel by si založiť nejakú premennú s identifikátorom, ktorá by to rozhodla, čo by bola ďalšia funkcia navyšše, nie??

Edit:
ale tá funkcia by zrejme bola aj tak efektívnejšia...


Offline

Užívateľ
Užívateľ
najst najblizsi input pre daným elementom

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 12.03.2011 18:40 | najst najblizsi input pre daným elementom

pozri sem spravil som nejaky podobny priklad bez toho aby som to musel posielat do suboru

http://jsfiddle.net/sjVfC/2/

len tam potrebujem nahradit riadok $("#zariadenie").html(content); za taky aby tie options vlozilo do nasledujuceho selectu za tym v ktorom vyberas druh..ta fcia sa v stahuje stale na dve selecty v jednom vyberiem druh a do druheho sa mi vypisu zariadenia tohto druhu...a nemozem to viazat na ID lebo takych dvojich tam mozem mat aj 4

// pridané po 1 hodine 31 minútach od posledného príspevku

camo píše:
deeJay:
Tu nájdeš všetko, čo som použil v tvojom prípade: http://jquery-navod.cz/kategorie-selektory/4-selektory

cele som si to presiel..ale neviem ci to nejake spojenie fcii next, children mi pomoze kedze tie moje dva selecty mozu byt oddelene buď:
Kód:
<tr>
   <td>
      select 1
   </td>
   <td>
      select 2
   </td>
</tr>

ale mozu byt oddelene aj:
Kód:
<tr>
   <td>
      select 1
   </td>
</tr>
<tr>
   <td>
      select 2
   </td>
</tr>

pri oboch pripadoch by ten js kod mal vyzerat inak nie?...potrebujem nieco co prejde DOM od aktualneho selectu az kym nenajde najblizsi dalsi select a do neho to vlozi...ziadne jednoduche riesenie neexistuje ?

// pridané po 4 hodinách 21 minútach od posledného príspevku

edit: no nic spravil som to tak ze beriem druhu class s aktualneho selectu
Kód:
var target = $(this).attr('class').split(" ")[1];


kedze prva je .druh_zariadenia a terget select vyberam tak ze:
Kód:
$('select#'+target).html(data.content);


inak sa to asi ani neda


 [ Príspevkov: 22 ] 


najst najblizsi input pre daným elementom



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Nefunguje script pre input formulara

v Frontend

13

937

23.08.2010 15:38

newboy1

V tomto fóre nie sú ďalšie neprečítané témy.

funkcia pre input v skrytom dive

v Frontend

2

447

04.12.2010 12:15

DeeJay3

V tomto fóre nie sú ďalšie neprečítané témy.

Najblizsi datum

v Databázy

7

832

21.03.2011 20:21

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

Menu - problem s pseudo-elementom

v Frontend

2

320

14.02.2012 19:56

tomco3131

V tomto fóre nie sú ďalšie neprečítané témy.

Nemôžem nájsť driver pre monitor

v Ovládače

1

772

30.01.2010 15:46

Milan.H

V tomto fóre nie sú ďalšie neprečítané témy.

nemozem najst bios pre moju dosku

v Biosy a ladenie výkonu

1

1372

27.04.2006 16:40

XPM

V tomto fóre nie sú ďalšie neprečítané témy.

neviem najst firmware pre moju mechaniku mam ntb acer AS5920

v Ovládače

9

792

16.11.2008 15:56

Googler1

V tomto fóre nie sú ďalšie neprečítané témy.

input

v Frontend

19

1549

08.03.2008 14:53

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

Input

v Frontend

1

989

26.02.2008 7:49

sento

V tomto fóre nie sú ďalšie neprečítané témy.

input - checkbox

v Backend

1

462

17.09.2011 21:46

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

input - javascript

v Frontend

20

1083

15.11.2011 15:49

lukas15

V tomto fóre nie sú ďalšie neprečítané témy.

Input file

v Frontend

3

754

28.04.2008 16:37

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

input index

v Backend

6

635

05.07.2009 19:42

php30

V tomto fóre nie sú ďalšie neprečítané témy.

heigth input

v Frontend

5

602

31.01.2009 19:20

jablko05

V tomto fóre nie sú ďalšie neprečítané témy.

input jQuery

v Frontend

5

724

20.07.2010 21:07

walther

V tomto fóre nie sú ďalšie neprečítané témy.

input s filtrom

v Frontend

4

618

19.12.2009 11:35

djsulo



© 2005 - 2026 PCforum, edited by JanoF