Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jquery] Pierwszy element i jego zawartość
markonix
post
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


  1. <tbody class="itemContainer">
  2. <tr class="oneItem"></tr>
  3. <tr class="oneItem"></tr>
  4. </tbody >


Nie potrafię za pomocą jQuery do zmiennej przypisać HTML całego pierwszego wiersza tj. <tr class ... itd (oczywiście w wierszu są kolumny i dużo innych elementów).

  1. var content = $('.itemContainer > tr').html();
  2. content = '<tr class="oneItem">' + content + '</tr>';


Powyższy kod spełnia oczekiwania ale jest "sztywny" (np. zmiana klasy będzie wymagała zmiany JavaScriptu).
Jakiś pomysł?

http://jsfiddle.net/CU6bB/

Ten post edytował markonix 7.05.2012, 20:48:36


--------------------
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


[JAVASCRIPT] pobierz, plaintext
  1. var content = $('.itemContainer tr:first').clone().wrap('<tbody>').parent().html();
[JAVASCRIPT] pobierz, plaintext


1. Klonujemy element TR (tak by nie zmieniał tego na stronie)
2. wrapujemy - owijamy nasze TR w znacznik TBODY
3. przechodzimy do TBODY
4. pobieramy zawartość

HTH wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
markonix
post
Post #3





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Już przez chwilę myślałem, że samo clone wystarczy ale ono też kopiuje tylko zawartość.
Bez klonowania też działa, czy aby na pewno jest ono potrzebne skoro tylko pobieram zawartość (nie manipuluje już potem wybranym elementem, a tylko zmienną content)?

edit: Clone jest potrzebne bo przecież ten wrap na nim stosuje wink.gif
Ogólnie myślałem, że przeoczyłem jakąś funkcję która właśnie klonuje ale te rozwiązanie, mimo że troszkę długie to jest elastyczna - także zmiana struktury np. tabelki na divy nie zmienia działania skryptu.

Ten post edytował markonix 8.05.2012, 10:55:14


--------------------
Go to the top of the page
+Quote Post
Sephirus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Dokładnie - jest dość elastyczne i może nie najwydajniejsze ale działa poprawnie. Niestety tak jak napisałeś nie da się bez clone właśnie przez tego wrapa :/

Swoją droga ludzie już od dłuuuugiego czasu męczą programmerów JQ o funkcję .outerHTML() ale niestety bezskutecznie jak dotychczas :/

Ale świat nie kończy się na jQuery - o wiele lepszą metodą staje się funkcja znaleziona w sieci bodajże z pure.js, która jest chyba najwydajniejsza i najskromniejsza ze znalezionych ;P

[JAVASCRIPT] pobierz, plaintext
  1. function outerHTML(node){
  2. return node.outerHTML || (
  3. function(n){
  4. var div = document.createElement('div'), h;
  5. div.appendChild( n.cloneNode(true) );
  6. h = div.innerHTML;
  7. div = null;
  8. return h;
  9. })(node);
  10. }
[JAVASCRIPT] pobierz, plaintext


wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
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: 22.08.2025 - 02:28