Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Iteracja po tabeli?
Fifi209
post
Post #1





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
ziqzaq
post
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

Ostrzeżenie: (0%)
-----


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


Ten post edytował ziqzaq 2.06.2010, 10:02:24
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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

Ten post edytował fifi209 2.06.2010, 22:28:39


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
lukasz_os
post
Post #4





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

Ostrzeżenie: (0%)
-----


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>


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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 ;]

Ten post edytował fifi209 3.06.2010, 15:08:35


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 00:59