使用 Javascript (jQuery) 遍历所有文本区域

Posted

技术标签:

【中文标题】使用 Javascript (jQuery) 遍历所有文本区域【英文标题】:Iterating through all Textareas with Javascript (jQuery) 【发布时间】:2011-09-06 07:09:15 【问题描述】:

我想对我所有的文本区域执行一些操作,但是用$("textarea") 选择所有这些区域是不行的。这是我在伪代码中尝试做的事情:

for each textarea do
  alert(textarea.val)

就我而言,我需要在我的所有文本区域中进行 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);

... 不断地......

谢谢!

【问题讨论】:

【参考方案1】:
$(function()
    $("textarea").each(function()
        this.value = this.value.replace("AFFURL",producturl);
    );
);

查看working demo

【讨论】:

+1 for REGULAR FREAKING javascript 用于获取 textarea 的值,而不是 $(this).val() 或 .text() 废话。 接受这个是因为常规的 javascript,这使得可读性更好。谢谢! :) 我得到 ReferenceError: textarea is not defined 当我尝试从我的代码中执行 $("textarea") 时。我在我的 $(document).ready 函数中执行这个,这不正确吗?【参考方案2】:

您可以使用.each 遍历所有textarea 元素并通过jQuery 对它们执行您需要的操作。

Live Demo

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

Reference

【讨论】:

【参考方案3】:

而不是使用 id 在下面做

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

// whatever u want
);

【讨论】:

【参考方案4】:

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())
    
)

【讨论】:

以上是关于使用 Javascript (jQuery) 遍历所有文本区域的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript课程——Day20(jQuery:使用选择器节点遍历操作其他属性操作)

遍历 HTML div 并使用 JavaScript 或 jQuery 从子跨度中提取值

Web开发——JavaScript库(jQuery遍历——后代)

循环遍历表的单元格并使用ForEach onClick - Javascript / Jquery

Web开发——JavaScript库(jQuery遍历——同胞)

Web开发——JavaScript库(jQuery遍历)