[jQuery] metoda .html

0

Witam mam taki przyklad

<html>
<head>
    <script language='JavaScript' type='text/javascript' src='http://code.jquery.com/jquery-1.4.2.min.js'></script> 
<script language='JavaScript' type='text/javascript' src='http://code.jquery.com/jquery-ui-1.8.2.custom.min.js'></script> 
</head>

<body>

<table id="table">
<tr><td><input type='text' name="cos2" value="123"/></td><td><input type='text' name="cos" value="asd"/></td></tr>
<input type='button' id="button" value="click"/>
</table>


<script>
$(document).ready(function()
{
   $("#button").click(function()
   {
    alert($('#table').html()); 
   }); 
});
</script>
</body>
</html>

pytanie jest następujące, jak odczytać zawartość tabeli ale ze zmienionymi wartościami formularza, czyli jak np. zmienie wartość pola tekstowego to zeby po odczycie .html ta zmiana byla uwzględniona, bo teraz przy odczycie zawsze dostaje pierwotną wersje, bez zmian

0

spróbuj tak:

$("#table").find("input").each(function(k,v){alert(k.value);});

jeśli elementy formularza to nie tylko inputy możesz spróbować tak:

$("#table").find("form *").each(function(k,v){alert($(k).val());});

Jeśli chcesz całego html'a jako stringa to jest to dość skomplikowane zadanie. Musiałbyś na podstawie fragmentu drzewa DOM wygenerować kod html. Dlatego metoda html() zwraca Ci "nieaktualne" dane - zwraca po prostu źródło tego fragmentu, ale bez uwzględnienia zmian w DOMie. To tak jakbyś wypełnił formularz i wybrał opcję "pokaż źródło strony" - będziesz miał html wywalony przez serwer, nie zobaczysz w nim czegoś takiego:

<input value="jakaś wartość, którą wpisałeś w formularzu". />
0

A jest jakaś funkcja aktualizująca DOM?

0

nie rozumiem...

1 użytkowników online, w tym zalogowanych: 0, gości: 1