我在Javascript方面的技能是有限的,并且我正在尝试使用Chrome的开发者工具,使用JS代码以编程方式填充某些元素。我导航到一个站点,访问控制台并尝试使用JS代码操作DOM元素。
用户通常可以输入数据的元素有INPUT,TEXTAREA,SELECT等。但是我最近看到的是用户可编辑的元素,但它们只是DIV。换句话说,DIV就像INPUT或TEXTAREA一样,这让我很困惑。
以下是一个示例:我从页面中提取此来源以在Facebook群组中发布主题。
请注意,有一个'写东西' innerhtml在页面中用作textarea。您可以在任何Facebook群组中重现此代码,即https://www.facebook.com/groups/914737511952904/(您可能需要加入群组才能看到发布主题的方框)。
<div class="_1mwp _1mwq _5bu_ _5yk1"><div class="_5yk2" tabindex="-2">
<div class="_5rp7">
<div class="_1p1t">
<div class="_1p1v" id="placeholder- 2bc29">Write something... </div>
</div>
</div>
</div>
如果这个元素是TEXTAREA,我可以很容易地做类似
的事情 document.getElementById('elementId').value = 'New text';
但是&#39; textarea&#39;在上面的情况下,元素实际上是一个DIV,没有别的。
如何使用JS在其上插入文字? DIV如何像textarea或输入一样?
谢谢!
答案 0 :(得分:3)
如何使用JS在其上插入文字?
这非常简单。只需使用innerHTML
属性来指定文本值。
document.getElementById('elementId').innerHTML = "Text inserted"
但是你可以只使用CSS,然后从调用相同属性的div中检索文本。
DIV如何像textarea或输入一样?
一种非常实用的方法是在div上使用contentEditable
属性,但您也可以使用CSS样式,在某些情况下也可以使用一些JavaScript代码。
这里有一个使用CSS样式和contentEditable
属性的简单示例:
https://jsfiddle.net/ThinkingStiff/AbKTQ/
答案 1 :(得分:1)
如何使用JS在其上插入文字?
element.textContent = "text content"
var div = document.querySelector('div');
div.textContent = "line of text by textContent"
<div></div>
DIV如何像textarea或输入一样?
您可以将contneteditable
添加到最初不可编辑的元素中。
<div contenteditable></div>
请参阅关于如何通过JS设置contenteditable
的代码段
var editor = document.querySelector('div');
editor.setAttribute('contenteditable', true);
<div>This is a div. Click on me and start typing.</div>