Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Iteracja po tabeli?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Fifi209
Mam taki kod:
[JAVASCRIPT] pobierz, plaintext
  1. $.each($("tr"),
  2. function(i, val) {
  3. var temp = $("tr:eq(" + i + ") td:eq(1)");
  4. if (temp.html() == 'tak') {
  5. temp.css('color', 'red');
  6. }
  7. }
  8. );
[JAVASCRIPT] pobierz, plaintext


Jednak jak na jQuery wydaje się dość skomplikowany. Pytanie brzmi: co źle napisałem lub co pominąłem?
ziqzaq
Może coś w tym stylu?
[JAVASCRIPT] pobierz, plaintext
  1. $('tr > td:contains(tak)').each(function(){
  2. $(this).css('color', 'red');
  3. });
[JAVASCRIPT] pobierz, plaintext


//Edit: drobna poprawka
[JAVASCRIPT] pobierz, plaintext
  1. $('tr').find('td:contains(tak):eq(0)').each(function(){
  2. $(this).css('background', 'red');
  3. });
[JAVASCRIPT] pobierz, plaintext
Fifi209
Drugie rozwiązanie jak najbardziej działa smile.gif Leci punkcik.

Pytanie drugie, moja tabela wygląda tak:

  1. <tr><td>naglowek</td><td>naglowek</td></tr>
  2. <tr><td>nazwa</td><td>cos</td><tr/>
  3. <tr><td>nazwa2</td><td>cos2</td></tr>


Kolorowanie tego drugiego pola mamy z głowy, teraz jak po kliknięciu na pole z drugiej kolumny pobrać to co w polu z pierwszej kolumny?

Klikam na "cos" i chcę pobrać "nazwa" etc.

Ja swój problem póki co rozwiązałem na zasadzie klas i id ale wierzę, że da się prościej. ;p

żeby nie było wymyśliłem coś takiego:
[JAVASCRIPT] pobierz, plaintext
  1. $('tr').each(
  2. function() {
  3. var name = $(this).find('td:eq(0)').html();
  4. $(this).find('td:eq(1)').click(
  5. function() {
  6. update(name, $(this).html());
  7. }
  8. );
  9. }
  10. );
[JAVASCRIPT] pobierz, plaintext


działać - działa... ale znów jakoś zbyt skomplikowanie wygląda i zapewne da się to prościej rozwiązać. ;p
lukasz_os
U mnie klasą xx oznaczyłem elementy które mają być klikane.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  3. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  4. <script type="text/javascript" src="jquery.js"></script>
  5. <script type="text/javascript">
  6. $().ready(function(){
  7. $(".xx").click(function(){
  8. alert($(this).prev('td').text());
  9. });
  10. });
  11. </head>
  12. <tr><td>naglowek</td><td>naglowek</td></tr>
  13. <tr><td>nazwa</td><td class="xx">cos</td><tr/>
  14. <tr><td>nazwa2</td><td class="xx">cos2</td></tr>
  15. </body>
  16. </html>
Fifi209
I elegancko ;]

Po małych przeróbkach do kolorowania używam:
[JAVASCRIPT] pobierz, plaintext
  1. $('tr').find('td:contains(tak)').each(function(){
  2. $(this).css('background', 'red');
  3. });
[JAVASCRIPT] pobierz, plaintext


Do pobierania poprzedniej komórki:
[JAVASCRIPT] pobierz, plaintext
  1. $('tr').find('td:eq(1)').click(
  2. function() {
  3. alert($(this).prev('td').html());
  4. }
  5. );
[JAVASCRIPT] pobierz, plaintext


Dziękuję ślicznie ;]
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.