Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dlugosc tablicy
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
misty
czesc, wiem ze problem wydaje sie banalny, ale sprawdzanie dlugosci tablicy poprzez length nie dziala mi pod IE!!

moj kod wyglada nastepujaco:
  1. var elements = document.getElementsByName("test_name");
  2. alert(elements.length);


pod ff zwraca mi dlugosc, ale pod IE daje 0!! czy ktos z Was moze mi pomoc jak sprawdzic dlugosc pod IE?

pzdr,
misty
wookieb
A masz element o nazwie "test_name" ? Nie sądzę.
Poza tym podaj resztę kodu - bez kontekstu nic nie możemy powiedzieć, jeszcze się tego nie nauczyłaś?
misty
tak, mam element o tej nazwie! kod wyglada tak:

<option value="1" name = "test_name">1</option>
<option value="2" name = "test_name">3</option>
<option value="3" name = "test_name">2</option>

Widze to rowniez w zrodle strony. Poza tym jak wspomnialam - pod Firefox zwraca mi poprawnie dlugosc!

A kontekst podalam - w 1szym poscie! Mam tylko te 2 linijki kodu. Moze naucz sie czytac zanim zaczniesz twierdzic ze ktos nie podaje kontekstu.
Sephirus
W ie nie ma getElementsByName smile.gif
misty
Jak to nie ma? Przeciez to jest funkcja js a nie przegladarkowa? hmm, a jak inaczej moge pobrac te elementy z danym name?
webdice
  1. alert( document.getElementsByName( "option" ).length );


Może to Cię nakieruje?
misty
nie, to nie dziala pod zadna przegladarka:

alert( document.getElementsByName( "test_name" ).length );
webdice
Zrozum że funkcja getElementsByName pobiera element o określonej nazwie, a nie element o określonym atrybucie name!

  1. <element name="your_name"></element>
  2.  
  3. alert( document.getElementsByName( "element" ).length );
misty
ale ja przetestowalam oba przypadki, tzn to: 3.alert( document.getElementsByName( "option" ).length ); tak samo nie dziala mi pod zadna przegladarka. Poza tym ja nie chce przeszukiwac wszystkich option (bo mam kilka select list) tylko te o okreslonym name.
Sephirus
http://www.dreamincode.net/code/snippet293.htm
webdice
Przepraszam, wziąłem pod uwagę funkcje getElementsByTagName. Funkcja getElementsByName tak jak napisał Sephirus nie działa pod IE.
misty
To tez nie do konca o co mi chodzi, ale znalazlam troche inne obejscie. Mam jeszcze 1 pytanie - wiecie moze jak zaznaczyc element w takiej select-liscie? Probowalam roznych kombinacji typu:

  1. $('#idPola').attr('selected', 'selected')
  2. lub
  3.  
  4. $("option[name='test_name']").attr('selected', 'selected')


ale to nie dziala. Bo rozumiem ze nie musze przeladowywac strony? A moze mi to nie dziala bo uzywam chosen jquery do tworzenia select listy? (a wlasciwie jest to multi-select lista)


pzdr,
misty
zegarek84
nie ustawiaj atrybutu tylko ustaw własność
$('#idPola')[0].selected = true;
$("option[name='test_name']")[0].selected = true;

lub możesz robić tak jak robisz ale wybrany będzie ostatni element jakiemu ustawiasz atrybut selected - musiałbyś go usuwać przy nie potrzebnych elementach...
ogólnie selected raczej stosuje się do domyślnych atrybutów...

ps. skoro korzystasz z jQ to nie rozumiem, dlaczego nie korzystasz z niego konsekwentnie tylko się pytałeś o .getElementsByName()...
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.