Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]jak wyciągnąc jeden element poprzez tagName
Forum PHP.pl > Forum > Przedszkole
neo1986kk
  1.  
  2.  
  3.  
  4. <button value="1" class="ab">
  5. <button value="2" class="ab">
  6. <button value="3" class="ab">
  7.  
  8. function button()
  9. {
  10. var i,btn = document.getElementsByTagName('button')
  11. for(i=0;i<btn.length;i++)
  12. {
  13. var k = i;
  14. if (btn[i].className.match(/(^|\s)ab(\s|$)/)) btn[i].onclick = function()
  15. {
  16. alert(btn[k].value);
  17. return false;
  18. }
  19. }
  20. }
  21.  


no i zawsze mi wyświetla value ostatniego buttona czyli zawsze '3'
i chodzi o to jak się dostać na przyklad do 2
kamil4u
Kod
btn[i].onclick = function(){
return function(){
  alert(btn[k].value);
  return false;
};
}(i)
neo1986kk
bez zmian

może warto dodać że to jest na zasadzie window.onload = button();

czyli przechodzi pętla i wartość i = 2, prawdopodobnie zawsze, chyba że się mylę.

Udało mi się to rozwiązać troszkę inaczej
  1.  
  2. function button()
  3. {
  4. var i,btn = document.getElementsByTagName('button')
  5. for(i=0;i<btn.length;i++)
  6. {
  7. var k = i;
  8. if (btn[k].className.match(/(^|\s)ab(\s|$)/))
  9. btn[k].onclick = function(){aaa(this); return false;
  10. }
  11.  
  12. }
  13. return false;
  14.  
  15. }
  16.  
  17.  
  18. function aaa(el)
  19. {
  20. alert(el.value);
  21. return false;
  22. }
  23.  
kamil4u
Nie:
window.onload = button();
a
window.onload = button;

Nie działa bo się pomyliłem, ale mogłeś na to wpaść sam...
Kod
btn[i].onclick = function(i){
return function(){
  alert(btn[i].value);
  return false;
};
}(i)
neo1986kk
ja się nie znam na JS na tyle żeby dostrzec, Twój błąd, ale zwracam honor:)
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.