permet de dire à l'intérieur d'un
7 Réponses :
Je pense que votre problème est avec l'objet JQuery. VAL () renvoie une chaîne et Split () retournera un tableau. Mais chaque () est une propriété de l'objet JQuery. Essayez cela à la place:
$($('textarea[name=sometextarea]').val().split('\n')).each(function(e){
alert($(this));
});
La méthode $ (). Chaque méthode est destinée à itération des éléments sur les éléments, la méthode $. () Est recommandée pour itérant d'autres objets, comme un tableau de chaînes.
L'objet Array n'a pas de chaque code>. Comme vous bouclez des chaînes et non des éléments, utilisez la méthode jQuery.ache code> (au lieu de la jQuery (). Chaque méthode):
Cela renvoie [objet objet] et non la chaîne. J'ai essayé cela.text (), et il ne dit aucune erreur méthode.
Son dit cela.text () n'est pas une fonction.
@AogHQ: JQuery jette la valeur à un objet pour une raison quelconque. Vous pouvez utiliser une chaîne (ceci) pour récupérer la valeur à la chaîne.
Comme ça ...
jQuery fournit une méthode chaque code> sur le jQuery code> (ou $ code>) objet. Cela devrait être utilisé, plutôt que de créer un objet JQuery sur un tableau: $.each($('textarea[name=sometextarea]').val().split('\n'), function(e){
alert(this);
});
Si j'ai une textareée qui a une largeur de la largeur et que le texte dactylographié, où le texte va automatiquement à une nouvelle ligne en raison de la fin de Texarea, cette chaîne peut-elle être divisée en nouvelle chaîne par ligne? P>
Je l'ai résolu avec CodeDigniter et PHP. Voici un code:
$this->load->helper('text');
$name = 'some text that is longer than the width of text area and you need to do some thing with it...';
$name_array = word_wrap($name, 20); //20 is a number of character where your text will be wrapped.
foreach(preg_split("/((\r?\n)|(\r\n?))/", $name_array) as $line){
echo $line.'</br>';
//from here, you can do what ever you want with $line, put it to another array..whatever
}
$("#your-text-area").live("keypress",function(){
var lines = $(this).val().split("\n");
$.each(lines, function(n, elem) {
console.log(elem);
$("<li></li>").text(elem).appendTo($("#target"));
});
You can "listen" using live on keypress, as the others suggested split by newline and the trick in the loop is that with "each" you get an index and value (elem in the code). This snippet appends the line value to another target element which you can empty before looping using
$("#target").empty();