我有一些在IE中工作的JavaScript代码包含以下内容:
myElement.innerText = "foo";
Run Code Online (Sandbox Code Playgroud)
但是,似乎'innerText'属性在Firefox中不起作用.是否有一些Firefox等价?或者是否可以使用更通用的跨浏览器属性?
我发现自己使用JavaScript和我对面跑去childNodes
和children
性能.我想知道它们之间的区别是什么.另一个是另一个优先选择?
我有一个由Javascript填充的下拉列表.
在确定应该在加载时显示的默认值时,我意识到以下属性显示完全相同的值:
innerText
innerHtml
label
text
textContent
outerText
我自己的研究显示了基准测试或其中几个测试之间的比较,但不是全部.
我可以使用我自己的常识并选择1或其他因为它们提供相同的结果,但是,我担心如果数据要改变,这不是一个好主意.
我的发现是:
innerText
将按原样显示该值,并忽略可能包含的任何HTML格式innerHTML
将显示该值并应用任何HTML格式label
看来是一样的innerText
,我看不出差别text
似乎innerText
与jQuery简写版本相同textContent
看起来像是一样innerText
但保持格式化(例如\n
)outerText
似乎是一样的 innerText
我的研究只能采取我太厉害,我只能考什么我能想到的或读到的东西发布后,任何一个可以确认但如果我的研究是正确的,如果有什么特别的label
和outerText
?
有没有办法从javascript文件中的字符串添加CSS到javascript文档的头部?
假设我们有一个网页,它有一个灯箱脚本,这个脚本需要一个css文件来运行.
现在添加此css文件<link>
将使css文件下载,即使对于没有启用js的人也是如此.
我知道我可以使用脚本动态加载css文件,但这也意味着将有2个http请求,并且在文件中几乎没有css的情况下,我发现这个效率低下.
所以我想,如果你可以将css文件中的css放入脚本中,让脚本解析css并将其添加到头部,或者更好的是让脚本直接添加css在<head>
该文件中.
但是我没有在网上发现这表明这是可能的,所以有可能用js将css添加到头部吗?
我编辑了roryf的跨浏览器工作的答案(IE5除外)
使用Javascript:
function addcss(css){
var head = document.getElementsByTagName('head')[0];
var s = document.createElement('style');
s.setAttribute('type', 'text/css');
if (s.styleSheet) { // IE
s.styleSheet.cssText = css;
} else { // the world
s.appendChild(document.createTextNode(css));
}
head.appendChild(s);
}
Run Code Online (Sandbox Code Playgroud) 我正在制作一个迷你游戏,其中一个玩家攻击一个npc而在中心是一个白色的盒子(div),我称之为(日志),因为当玩家损坏/攻击npc时,我希望能够打开那个白色空间记录发生的事情.
我正在使用getElementById(log),然后在"document.write("你攻击X npc")的行中添加一些东西,但是它不起作用.
关于如何在盒子内部而不是在盒子外面获取文本的任何想法?谢谢
标题非常清楚:用文本填充跨度innerHTML
和createTextNode
(用于Append
)之间是否有任何重大差异?
我正在尝试创建一个函数(在JavaScript中)通过在每个(例如)300毫秒(在<p>
标记中)逐个编写其字母来编写句子.我写过:
var text = ["H", "e", "l", "l", "o", " ", "h", "o", "w", " ", "a", "r", "e", "y", "o", "u", "?"]
function typeText() {
var i = 0;
var interval = setInterval(function () {
var parag = document.getElementById("theParagraph");
var paragOldText = parag.innerText;
parag.innerText = paragOldText + text[i];
i++;
if (text.length == i)
clearInterval(interval);
}, 200)
}
Run Code Online (Sandbox Code Playgroud)
<body>
<p id="theParagraph"></p>
<button id="typeButton" onclick="typeText()" style="padding:15px">Start typing the sentence</button>
</body>
Run Code Online (Sandbox Code Playgroud)
如您所见,数组中有一些""(空格)字符; 问题是它没有写那些空格,所以句子就像这样:"Hellohowareyou".我该如何解决这个问题?
(注意:这个问题与上面的类似问题不同,因为它是关于附加和分离 DOM 树之间的差异。)
\n一段简单的 HTML,包含一个 DIV,其元素之间没有空格:
\n<!DOCTYPE html>\n<html>\n\n <body>\n <div><h1>The Title</h1><p>A paragraph.</p><p>A second paragraph.</p></div>\n </body>\n\n <script type="text/javascript">\n\n const div = document.querySelector("div");\n\n console.log(div.innerText);\n\n const clone = div.cloneNode(true);\n console.log(clone.innerText);\n\n document.body.appendChild(clone);\n console.log(clone.innerText);\n\n </script>\n</html>
Run Code Online (Sandbox Code Playgroud)\r\n我innerText
向控制台输出了三遍。
第一次是原始 DIV 的时间:
\nThe Title\n\nA paragraph.\n\nA second paragraph.\n
Run Code Online (Sandbox Code Playgroud)\n第二个是克隆的 DIV,我希望它是相同的,但它是:
\nThe TitleA paragraph.A second paragraph.\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n第三个也是克隆的 DIV,但将其添加到文档后,现在我期望它是:
\nThe Title\n\nA paragraph.\n\nA second paragraph.\n
Run Code Online (Sandbox Code Playgroud)\n当它不是文档的一部分时,为什么间距不同?
\n我有
<div class="ce">
<div class="lotB">9</div>
<div class="lotB">3</div>
<div class="lotB">28</div> == $0
</div>
Run Code Online (Sandbox Code Playgroud)
我试图得到这三个数字,9, 3, 28
但我不能让它工作:s
已经尝试了几种不同的事情,我也读到的innerText并试图得到它通过班级正在进行的工作ce
一样,
var x = document.getElementsByClassName("ce");
for (var i = 0; i < x.length; i++) {
var numbers = x[i].innerText;
alert(numbers);
}
Run Code Online (Sandbox Code Playgroud)
但这也没有给我任何东西:/
你如何获得每个这些类的内部文本,所以我得到了数字9, 3, 28
?