使用css或javascript将元素转换为textarea?

时间:2014-02-22 21:07:44

标签: javascript html css

我在网页中找到了<div>类,其中.plainMail类,我希望能够通过按 Ctrl + A来选择所有文本

我使用Firefox 22.我正在考虑将div.plainMail转换为textarea。我该怎么办?

更新

可以通过document.getElementsByClassName完成吗?因为document.getElementById我无法做到。我使用GreaseMonkey。

2 个答案:

答案 0 :(得分:6)

我不确定您正在寻找什么,但您可能需要HTML Content Editable属性。

<div contenteditable="true">
  This text can be edited by the user.
</div>

<强> ONLINE DEMO

通过使用JavaScript,您可以将属性/值添加到元素中,如下所示:

var d = document.getElementById("myelement"); 
d.setAttribute("contenteditable", "true"); // Or: d.contentEditable = "true";

<强> UPDATED DEMO

  

可以通过document.getElementsByClassName吗?

完成

确定(如果你不关心IE8及以下),但请注意getElementsByClassName返回匹配元素的 NodeList ,而不是单个元素。

因此,我们必须遍历返回的列表以应用该属性,如下所示:

var i,
    list = document.getElementsByClassName("content");

for (i = 0; i < list.length; ++i) {
    list[i].setAttribute('contenteditable', 'true');
}

<强> UPDATED DEMO

答案 1 :(得分:0)

谷歌搜索时发现了这个链接。这个问题似乎非常接近。

以下css代码可以为div提供textarea效果。

#div-textarea {
    -moz-appearance: textfield-multiline;
    -webkit-appearance: textarea;
    border: 1px solid gray;
    font: medium -moz-fixed;
    font: -webkit-small-control;
    overflow: auto;
    padding: 2px;
    resize: both;
}

http://blog.thinkingstiff.com/2012/01/22/how-to-make-a-contenteditable-look-like-an-element-or/

也认为链接包含这个小提琴链接..

http://jsfiddle.net/ThinkingStiff/FcCgA/