如何使用Javascript向元素添加“contenteditable”属性?

10
我正在使用Javascript绘制一个div,并在构建过程中添加各种属性。我可以使id、class和style属性正常工作,但它却忽略了"contenteditable"属性。
var elemText = document.createElement('div');
elemText.className = 'elem';
elemText.style.background = "none";
elemText.id = "elementID";
elemText.contenteditable = "true";

我也尝试过

elemText.attributes['contenteditable'] = "true";

依然没有喜悦。

2个回答

22

这个属性是 contentEditable(注意大写字母“E”)。使用 setAttribute() 设置属性而非 attributes 集合。因此,以下任一方法都可以:

elemText.contentEditable = "true";
elemText.setAttribute("contenteditable", "true");

是的,属性名称是 contentEditable. - Ram
为什么要大写字母E?https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/Content_Editable - putvande
由于JavaScript命名方案使用骆驼式大小写,所以要@putvande。 - Alex W
@putvande:因为文档是这么说的:https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.contentEditable 还有 http://www.whatwg.org/specs/web-apps/current-work/#contenteditable - gen_Eric

4

你尝试过使用setAttribute吗?

elemText.setAttribute('contenteditable', true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接