2011-06-01 9 views
8

Me gustaría realizar algo con todas mis áreas de texto, sin embargo, seleccionar todas ellas con $("textarea") no funcionará. Esto es lo que estoy tratando de hacer en Pseudo código:Iterar a través de todos Textareas con Javascript (jQuery)

for each textarea do 
    alert(textarea.val) 

En mi caso, tengo que hacer un reemplazo Palabra en todas mis áreas de texto, así que pensé hacerlo con iteración sería mucho más limpio, sin embargo, no puedo entender cómo hacerlo.

aquí es lo que actualmente hago, que es muy tedioso:

var txtcode = $("#txt_banner1").text().replace("AFFURL",producturl); 
$("#txt_banner1").text(txtcode); 

var txtcode = $("#txt_banner2").text().replace("AFFURL",producturl); 
$("#txt_banner2").text(txtcode); 

... y sigue y sigue ....

Gracias!

Respuesta

19
$(function(){ 
    $("textarea").each(function(){ 
     this.value = this.value.replace("AFFURL",producturl); 
    }); 
}); 

Ver working demo

+0

+1 para REGULAR FREAKING JavaScript para obtener el valor del área de texto en lugar de $ (this) .val() o .text() sin sentido. –

+0

Aceptado éste debido a la javascript normal, lo que permite una mejor legibilidad. ¡Gracias! :) – Jeff

+0

Me sale ReferenceError: textarea no está definido cuando intento hacer $ ("textarea") desde mi código. Estoy ejecutando esto desde mi función $ (documento) .ready, ¿no es correcto? – crusarovid

6

Puede usar .each para iterar sobre todos los elementos textarea y hacer lo que necesita con ellos a través de jQuery.

Live Demo

$('textarea').each(
    function(){ 
     alert($(this).val()); 
    } 
); 

Reference

3

en lugar de utilizar Identificación del hacer a continuación

$("textarea").each (function() { 

// whatever u want 
}); 
1

http://jsfiddle.net/PKenB/

//alternative 1 
$(function() { 
    $('textarea').each(function() { 
     alert($(this).text()) 
    }) 
}) 

//alternative 2 only those who has specific class 
$(function() { 
    $('textarea.myTextArea').each(function() { 
     alert($(this).text()) 
    }) 
}) 

//alternative 3, handpicked textareas  
$(function() { 
    var handPicked = ['#2', '.myTextArea'] 
    for (x = 0; x < handPicked.length; x++) { 
     alert($(handPicked[x]).text()) 
    } 
}) 
Cuestiones relacionadas