Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
Avatar
David Šabacký:12. května 0:57

Ahoj,

měl bych, asi začátečnický dotaz.
Mám definovanou tabulku a potřebuju do ní, pomocí JQuery dostat řádky a buňky.
Když napíšu:

var $table_text=$('<tr><td­><span>XXXX </td><td><input type=text name="des" value="'+ des + '"></td> <td> <img onclick="save('y')" src=./icons/sa­ve.png></td></­tr>');

$table_text.ap­pend('<tr><td><­span>' + lang.profile.pas­sword + '</td></tr>');

$('.evy_table')­.append($table_tex­t);

Zobrazí se mi vše jako jeden řádek, jako kdyby ignoroval druhé <tr></tr>.

moc děkuju

Zkusil jsem: pokud to vše dám do jednoho řádku tedy pod var $table_text ... je vše v pořádku.

Editováno 12. května 0:58
 
Odpovědět
12. května 0:57
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:12. května 9:21

Na co jsi prisel prohlizenim dokumentace a hledanim prikladu googlem? Ty jsi nic z toho nezkusil? Cely svet mas pripojeny...

https://api.jquery.com/append/
Type: htmlString or Element or Text or Array or jQuery

jquery je jakysi class, soubor s funkcemi. $('text') je obvykle zapis pro ** vyhledavani** css id #neco nebo css class .neco nebo html tagu. Autori misto normalniho, slovniho, nazvu pouzili znak $ coz muze vest ke zmatkum Tudiz, ten zapis se mi nezda? Nicmene, v dokumentaci ho vesele pouzivaji :)

var $table_text=$('<tr><td><span>XXXX </td><td><input type=text name="des" value="'+ des + '"></td> <td> <img onclick="save('y')" src=./icons/save.png></td></tr>'); // nesmysl
var $table_text='<tr><td><span>XXXX </td><td><input type=text name="des" value="'+ des + '"></td> <td> <img onclick="save('y')" src=./icons/save.png></td></tr>'; // lepsi
var table_text='<tr><td><span>XXXX </td><td><input type=text name="des" value="'+ des + '"></td> <td> <img onclick="save('y')" src=./icons/save.png></td></tr>'; // jeste lepsi, ten dolar tam byt nemusi, je to zkratka prosty js string, obycejna promenna

$('.evy_table').append($table_text);
$('.evy_table').append(table_text); // pro jeste lepsi
// az funkce append z toho vytvori html tagy

Ok, takze to lze zapsat jako string. Co dal? No, ten string mas zapsany ale spatne. Nepracujes pri psani kodu s js/chybovou konzolou prohlizece?

<tr><td><span>XXXX </td><td><input type=text name="des" value="'
+ des +
'"></td> <td> <img onclick="save(' // tady mas chybu v apostrofu
y
')" src=./icons/save.png></td></tr>' // a tady taky, na zacatku

Tu chybu vidis tez tady pri obarvovani kodu. Nepouzivas editor, co obarvuje kod? Vse je pekne zelene a Y je najednou bile, podobne jako +des+, coz je podezrele, ne?

Ok, co s tim?

1. '...&quote...' - zapis html entitou, tomu se mozna nevyhnes u slozitejsiho kodu
2. '...\'...' - pouzit zpetne lomitko
3, Muzes pouzit papametr, ktery element zna
<span title="y" onclick="funkce(this.title);">klikni na mne</span>
title, class a jine, podle dokumentace ke zvolene verzi html
<span data-target="y" onclick="funkce(this.data.target);">klikni na mne</span> // tohle je mozna jeste lepsi, data je univerzalni pole
<span data-target="y" onclick="funkce(this)">klikni na mne</span> // a nebo predavat this a funkce si uz data zpracuje sama
Editováno 12. května 9:23
 
Nahoru Odpovědět
12. května 9:21
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:12. května 9:26
'<tr><td><span>XXXX </td><td><input type=text name="des" value="' // EDIT: tady jsem na zacatku zapomnel apostrof, proto se to neobarvilo stejne zelene jako u toho kodu nad tim, tez by bylo krasne videt, ze Y je jinou nez zelenou barvou, ale v tomto pripade melo byt spravne take zelenou
+ des +
'"></td> <td> <img onclick="save(' // tady mas chybu v apostrofu
y
')" src=./icons/save.png></td></tr>' // a tady taky, na zacatku
 
Nahoru Odpovědět
12. května 9:26
Avatar
Odpovídá na Peter Mlich
David Šabacký:12. května 22:27

Ahoj,

moc díky. Pokud jde o chybu ve stringu, je to jen proto, že jsem zjednodušoval ten řádek. Jinak mi to samozřejmě chodilo a chybovou consoly používám.

Zatím a ještě jednou díky

David

 
Nahoru Odpovědět
12. května 22:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.