如何在javascript中查找/检测页面中的任何textarea

时间:2010-01-04 20:39:58

标签: javascript internet-explorer-7 textarea

(document.getElementById('textarea')。length> 0)不起作用。有没有人知道除此之外的任何其他事情?

威尔

以下是我之前提出的问题未解决的问题。我有Rich文本编辑器(Openwysiwyg),当我转到textarea所在的特定页面时,它被加载到textarea。该函数使用textarea id来标识textarea以使用富文本编辑器(RTE)替换它。现在调用此函数的脚本位于页面的标题部分。我选择了一个用于发送电子邮件的下拉选项,因此我的textarea电子邮件显示出来。通过为RTE添加此脚本,我的textarea电子邮件将被RTE替换,我可以发送格式化的电子邮件。所以这在Firefox中运行得非常好。使用IE7,RTE甚至在我选择电子邮件的下拉选项之前就显示出来了,这使整个页面搞砸了。当我选择电子邮件的下拉选项时,我只看到正常的文本区域和RTE仍然位于页面顶部。

4 个答案:

答案 0 :(得分:9)

document.getElementsByTagName('textarea')。length> 0

答案 1 :(得分:1)

您可以使用(注意复数形式!)

var e = document.getElementsByTagName("textarea");

您也可以使用jQuery:

$("textarea").each( function() { /* ... */ } );

编辑: 我曾经遇到过类似的问题。我正在使用fckedit,当我尝试读取我的textedit(document.getElementById('blabla').value)的值时,我变得空了,即使很难,富文本编辑也会在屏幕上显示某些内容。

事实证明,fckedit API在textearea顶部打开一个新元素,只有当你从页面导航时才会将它的内部数据(在iframe上,如果我没有误)同步到原始textarea中。

故事的寓意:如果你使用的是一些richtext API - 使用它的API来查询你的“textarea”的状态。希望这对您有所帮助,因为我不知道您正在使用的库。

PS:我实际上使用了$("blabla").val() ...这也是JavaScript ......出于某种原因,人们认为jQuery不是javascript。那是为什么?

答案 2 :(得分:1)

纯JavaScript(您可以使用此代码)

textarea是HTML元素标记

JavaScript:

if(document.getElementsByTagName('textarea').length > 0) {

}

HTML CODE:

<div class="flavor">

  <div class="value">

    <textarea name="name" rows="8" cols="80"></textarea>

  </div>

</div>

<script type="text/javascript">

  var flavorbox = document.getElementsByClassName('flavor')[0]  
                          .getElementsByClassName('value')[0]
                          .getElementsByTagName('textarea').length;

  alert(flavorbox);

</script> 

答案 3 :(得分:0)

由于openWYSIWYG动态生成iframe,因此获取/设置其内容并不那么简单。

我目前正在努力更改源中的这些设置。我会在收到更改后立即在此处发布链接。