Bonjour,
Est-il possible d'utiliser la méthode text('...) et de récupérer le retour dans une variable au lieu de le générer dans le DOM ?
http://api.jquery.com/text/
Merci,
Dorian
Version imprimable
Bonjour,
Est-il possible d'utiliser la méthode text('...) et de récupérer le retour dans une variable au lieu de le générer dans le DOM ?
http://api.jquery.com/text/
Merci,
Dorian
Sois je ne comprends pas ta question, soit l'utilité de ta demande me semble douteuse... :koi:
Si tu veux passer un texte à la méthode .text(), ça transforme cette méthode en setter et son retour, c'est l'objet jQuery auquel tu as appliqué la méthode.Citation:
récupérer le retour dans une variable
Si tu veux stocker le paramètre (donc une chaine de caractères) dans une variable, ça ne sert à rien d'utiliser la méthode .text() :
suffit amplement non ? :?Code:var monTexte = '...';
text('...'); permet d'encoder quelques entités HTML.
J'ai besoin de générer du contenu HTML avec une donnée provenant d'une saisie utilisateur, qui elle seule doit être protégée.
Par exemple :
// TEST doit être encodéCitation:
<div id="bloc">
<div>Ceci est un test, monsieur machin a recherché "TEST"</div>
<div>
Cas 1, tout va être encodé
Cas 2, rien ne va être encodéCode:$('#bloc').text('<div>Ceci est un test, monsieur machin a recherché "' + $('#q').val() + '"</div>');
Cas 3, ma questionCode:$('#bloc').append('<div>Ceci est un test, monsieur machin a recherché "' + $('#q').val() + '"</div>');
Cas 4, ma solutionCode:
1
2
3 var query = text($('#q').val()); ?? $('#bloc').append('<div>Ceci est un test, monsieur machin a recherché "' + query + '"</div>');
D'où ma question, est-il possible d'utiliser la méthode text('...') et de récupérer le retour dans une variable (voir cas 3).Code:
1
2 $('#bloc').append('<div>Ceci est un test, monsieur machin a recherché <span id="query"></span></div>'); $('#query').text($('#q').val());
http://jsfiddle.net/mmMRP/
Code:$('#bloc').append($('<div/>').html('Ceci est un test, monsieur machin a recherché').append( $('<span>').text($('#q').val()) ) );
Le plus simple reste encore d'oublier jQuery et d'utiliser document.createTextNode()...
ben si ...
Code:alert($('#bloc').find('span').text())
Autant utiliser les possibilités de jquery
Vu qu'il n'y a pas de méthode directe de type htmlentities endocde or decode on peut imaginer des fonctions du type
Code:
1
2
3
4
5
6
7
8
9 function html_encode(texte){ return $('<p/>').text(texte).html(); } } function html_decode(texte) { return $('<p/>').html(texte).text(); }