我在Firefox 扩展的环境中工作。
问题
我正在尝试创建一个具有特定 lang
属性的新元素。我尝试了 How to create HTML element with lang attribute in JavaSript? 中给出的方法 elt.lang = 'zh'
不起作用。该元素已创建,但没有 lang
属性。
未按预期代码工作
var wrapper = document.createElement("span");
var zh = document.createElement("i");
zh.textContent = symbol;
zh.lang= "zh-cmn"; // <-- -- -- -- -- -- --
var srcText = document.createTextNode('blablabla');
wrapper.appendChild(zh);
wrapper.appendChild(srcText);
按预期代码工作
但是当我使用Element.setAttribute()
时方法效果很好:
zh.setAttribute('lang','zh');
为什么elt.lang
/dot-notation 方法不起作用?
最佳答案
并非所有可能的 HTML 属性都会反射(reflect)为 javascript setter/getter。例如,https://developer.mozilla.org/en-US/docs/Web/API/Node肯定会列出textContent,但不会列出lang
。我建议始终使用setAttribute/getAttribute,除了可能最基本的属性,例如“src”或“href”。
关于javascript - elt.lang = 'fr' 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18485948/