Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jquery - pozycja wartosci w array'u
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
cioop
witam, natknalem sie na dziwny problem uzywajac jquery, manowicie, mam array, i probuje sprawdzic dwukrotnie, na ktorym miejscu znajduje sie w nim wartosc:
var arr_pos = $.inArray(temp, arr);
alert(arr_pos) daje mi wynik -1, podczas gdy alert(temp'+\n+'arr) wyswietla wartosc temp zarowno jako string jak i jako wartosc array'a.
dlaczego zatem var arr_pos = $.inArray(temp, arr); zwraca wynik -1?!
uzywam tego do stronicowania, arr zawiera linki a temp to adres strony, na ktorej sie znajduje.
oto moje szwankujace funkcje
  1. function pass_link(link) {
  2. var insert = '';
  3. var arr_pos = $.inArray(link, arr);
  4. var prev = arr[arr_pos-1];
  5. var next = arr[arr_pos+1];
  6. if (prev != null) insert += ' <a href="'+prev+'" onclick="loadHref(this);return false;">Ť poprzednie</a>';
  7. if (next != null) insert += ' <a href="'+next+'" onclick="loadHref(this);return false;">następne ť</a>';
  8. if (insert != '' ) document.getElementById('my_dump').innerHTML = insert + ' ';
  9. }
  10. function loadHref(temp) {
  11. $('#loaded-content').load(temp + ' #content');
  12. var insert = '';
  13. var arr_pos = $.inArray(temp, arr);
  14. var prev = arr[arr_pos-1];
  15. var next = arr[arr_pos+1];
  16. if (prev != null) insert += ' <a href="'+prev+'" onclick="loadHref(this);return false;">Ť poprzednie</a>';
  17. if (next != null) insert += ' <a href="'+next+'" onclick="loadHref(this);return false;">następne ť</a>';
  18. if (insert != '' ) document.getElementById('my_dump').innerHTML = insert + ' ';
  19. }

z gory dziekuje i pozdrawiam
ayeo
Witaj!

$.inArray(); zwraca -1 jeżeli nie znajdzie elementu. Możesz wkleić tutaj wynik tego alerta?
Pozdrawiam!
cioop
ale ten string na 100% jest w tym array'u, bo zwraca mi to alert(temp'+\n+'arr) ?!
ayeo
Możesz wkleić tego alerta?
cioop
/galeria/5-1.html

/galeria/2-1.html,/galeria/1-1.html,/galeria/3-1.html,/galeria/4-1.html,/galeria/5-1.html,/galeria/6-1.html,/galeria/7-1.html,/galeria/8-1.html,/galeria/9-1.html,/galeria/10-1.html,/galeria/11-1.html,/galeria/12-1.html,/galeria/13-1.html,/galeria/14-1.html,/galeria/15-1.html,/galeria/16-1.html,/galeria/17-1.html,/galeria/18-1.html,/galeria/19-1.html,/galeria/20-1.html,/galeria/207-1.html,/galeria/208-1.html,/galeria/209-1.html,/galeria/210-1.html,/galeria/211-1.html,/galeria/212-1.html

powinno zwrocic 4 - czy mozliwe jest, ze wywolje to w zlym momencie?

dla funkcji pass_link() dziala. to loadHref() sie psuje.
probowalem zmieniac nazwy, ale nie pomoglo.

arr tworze tak:
  1. var arr = new Array();
  2. var trs = document.getElementsByTagName('tr');
  3. for(i=0;i<trs.length;i++)
  4. {
  5. var link = trs[i].getElementsByTagName('a')[0];
  6. arr[i] = link;
  7. }

czy arr traci wartosci po ajaxowym loadzie?
ayeo
  1.  
  2. var variable = "/galeria/3-1.html";
  3. var array = new Array("/galeria/2-1.html","/galeria/1-1.html","/galeria/3-1.html","/galeria/4-1.html");
  4. alert($.inArray( variable, array));
  5.  


Takie coś działa... Podeślij cały kod winksmiley.jpg

Pozdrawiam!
cioop
kod wyglada tak
  1. var arr = new Array();
  2. var trs = document.getElementsByTagName('tr');
  3. for(i=0;i<trs.length;i++)
  4. {
  5. var link = trs[i].getElementsByTagName('a')[0];
  6. arr[i] = link;
  7. }
  8. pass_linkor(url); // url jest z innej funkcji
  9. function pass_link(link) {
  10. var insert = '';
  11. var arr_pos = $.inArray(link, arr);
  12. var prev = arr[arr_pos-1];
  13. var next = arr[arr_pos+1];
  14. if (prev != null) insert += '&nbsp;<a href="'+prev+'" onclick="loadHref(this);return false;">&laquo;&nbsp;poprzednie</a>';
  15. if (next != null) insert += '&nbsp;<a href="'+next+'" onclick="loadHref(this);return false;">następne&nbsp;&raquo;</a>';
  16. if (insert != '' ) document.getElementById('my_dump').innerHTML = insert + '&nbsp;';
  17. }
  18. function loadHref(temp) {
  19. $('#loaded_content').load(temp + ' #content');
  20. var insert = '';
  21. var arr_pos = $.inArray(temp, arr);
  22. alert(temp+'\n'+arr);
  23. var prev = arr[arr_pos-1];
  24. var next = arr[arr_pos+1];
  25. if (prev != null) insert += '&nbsp;<a href="'+prev+'" onclick="loadHref(this);return false;">&laquo;&nbsp;poprzednie</a>';
  26. if (next != null) insert += '&nbsp;<a href="'+next+'" onclick="loadHref(this);return false;">następne&nbsp;&raquo;</a>';
  27. if (insert != '' ) document.getElementById('my_dump').innerHTML = insert + '&nbsp;';
  28. }
ayeo
Kurde, używasz jQuery, a potem walisz w czystm JS smile.gif

  1. $( document ).ready(function()
  2. {
  3. array = new Array();
  4.  
  5. $("a").each(function()
  6. {
  7. array.push( $( this ).attr('href') );
  8. });
  9.  
  10. var variable = "/galeria/3-1.html";
  11.  
  12. alert($.inArray( variable, array));
  13.  
  14. });
  15.  


Działa, jak trzeba.. Po prostu w tablicy nie trzymasz atrybutu href tylko obiekt linka winksmiley.jpg U siebie chyba powninieneś zmienić $("a") na $("tr a"). Ale nie widzę Twojego kodu więc pewności ni ma winksmiley.jpg

Pozdrawiam!

edit: Co za ludzie smile.gif Full serwis online o 2 w nocy za free, a nawet "dzięki" ciężko napisać :/
cioop
dzieki, dziala


---
To ja dorzucam punkcik dla ~ayeo
~mike
qweluke
nie chce zakladac nowego tematu, wiec odgrzeje kotleta

Mam taki kodzik
[JAVASCRIPT] pobierz, plaintext
  1. var tablica = [
  2. ['6', '6'],
  3. ['8', '6'],
  4. ['8-', '8'],
  5. ['8q', '6'],
  6. ['8e', '8'],
  7. ['8t', '8'],
  8. ];
  9. var wiersz1=8;
  10.  
  11. CzyJest = jQuery.inArray(wiersz1, tablica);
  12. alert(CzyJest);
  13.  
[JAVASCRIPT] pobierz, plaintext


Dlaczego alert zwraca mi -1? Przecież element jest w tablicy snitch.gif
zegarek84
nie, nie jest - we wspomnianej tablicy masz inne tablice a nie liczby...
qweluke
no to w jaki sposob odwolac sie do tablicy wielowymiarowej poleceniem inArray?

poradzilem sobie takim kodem

[JAVASCRIPT] pobierz, plaintext
  1. for (var k = 0; k <= TablicaIloscElem; k++) {
  2. if (tablica[k][0] == wiersz1) {
  3. alert('jest');
  4. break;
  5. }
  6. }
[JAVASCRIPT] pobierz, plaintext
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.