使用Javascript(jQuery)迭代所有Textareas

时间:2011-06-01 13:11:02

标签: jquery html textarea iteration

我想对我的所有文本区域执行某些操作,但是选择所有文本区域$("textarea")不会这样做。这是我在伪代码

中尝试做的事情
for each textarea do
  alert(textarea.val)

在我的情况下,我需要在我的所有textareas中进行Word替换,所以我认为使用迭代执行它会更加清晰,但我无法弄清楚如何去做。

这是我目前正在做的事情,这非常乏味:

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

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

......等等......

谢谢!

4 个答案:

答案 0 :(得分:20)

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

查看working demo

答案 1 :(得分:8)

您可以使用.each迭代所有textarea元素,并通过jQuery执行您需要的操作。

<强> Live Demo

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

<强> Reference

答案 2 :(得分:3)

而是使用id 在下面

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

// whatever u want
});

答案 3 :(得分: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())
    }
})