标题非常清楚:用文本填充跨度innerHTML和createTextNode(用于Append)之间是否有任何重大差异?
当我在FF 3.0中刷新下面的页面时,我希望网页能够清除,但事实并非如此.
为什么不document.body.innerHTML = ""清除页面?
更新: 我正在尝试在加载新页面的同时刷新上一个屏幕.我实际上想看到页面清除,等待然后下一个js运行.页面加载后我不想清除屏幕.
...
<body>
<script type="text/javascript">
document.body.innerHTML = "";
for (var i = 0; i < 1000000000; i++) {
}
</script>
<img src="images/web.gif" /><br />
<script type="text/javascript">
document.write( "hello<br />");
</script>
<img src="images/warning.png" /><br />
</body>
Run Code Online (Sandbox Code Playgroud) 快速问题,我知道我们可以改变一个内容
<div id="whatEverId">hello one<div> 通过使用:
document.getElementById("whatEverId").innerHTML="hello two";
Run Code Online (Sandbox Code Playgroud)
现在,有没有办法可以将东西添加到div而不是替换它?所以我能得到
<div id="whatEverId">hello one hello two<div>
(当然使用类似的东西)
注:我不希望使用任何框架.
假设一个简单的HTML文档,如下所示:
<html>
<head></head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
提到的所有函数都包含在head部分中,所有DOM创建/操作都在body标记的主体末尾完成.
我有一个函数createElement,它将一个格式良好的HTML String作为参数.它是这样的:
function createElement(str)
{
var div = document.createElement('div');
div.innerHTML = str;
return div.childNodes;
}
Run Code Online (Sandbox Code Playgroud)
现在这个函数在你调用它时效果很好:
var e = createElement('<p id="myId" class="myClass">myInnerHTML</p>');
Run Code Online (Sandbox Code Playgroud)
由于元素创建的次要(可能是巨大的)问题不是'true'元素,它仍然有一个'div'的parentNode.如果有人知道如何解决这个问题,那将是非常棒的.
现在,如果我使用更复杂的字符串调用相同的函数:
var e = createElement('<p id="myId" class="myClass">innerHTML<h2 id="h2ID" class="h2CLASS">Heading2</h2></p>');
Run Code Online (Sandbox Code Playgroud)
它创造了两个孩子,而不是一个孩子,另一个孩子有另一个孩子.
一旦你做了div.innerHTML = str.innerHTML而不是
`<p id="myId" class="myClass">innerHTML <h2 id="h2ID" class="h2CLASS">Heading2</h2> </p>`
Run Code Online (Sandbox Code Playgroud)
转向
`<p id="myId" class="myClass">innerHTML</p> <h2 id="h2ID" class="h2CLASS">Heading2</h2>`
Run Code Online (Sandbox Code Playgroud)
<p.myClass#myId>,<h2.h2CLASS#h2ID>,和另一个<p>]是否有可能以某种方式获取原始HTML源代码而不进行已处理Javascript所做的更改?例如,如果我这样做:
<div id="test">
<script type="text/javascript">document.write("hello");</script>
</div>
Run Code Online (Sandbox Code Playgroud)
如果我做:
alert(document.getElementById('test').innerHTML);
Run Code Online (Sandbox Code Playgroud)
表明:
<script type="text/javascript">document.write("hello");</script>hello
Run Code Online (Sandbox Code Playgroud)
简单来说,我希望alert仅显示:
<script type="text/javascript">document.write("hello");</script>
Run Code Online (Sandbox Code Playgroud)
没有final hello(处理过的脚本的结果).
我创建了一个电子邮件链接,可以自动填充正文中的必要信息.但是,当我这样做时,我会得到比我讨价还价更多的东西.
我想要"2012年3月:12-16"
我得到了什么 <B>March, 2012</B>: <FONT color=blue>12</FONT> - <FONT color=blue>16</FONT>
有没有办法在没有html标签的情况下获取innerHTML?
.value = undefined
.text = undefined
Run Code Online (Sandbox Code Playgroud) 在javascript中,如何设置iframe的innerHTML?我的意思是:如何设置,而不是获取.
window["ifrm_name"].document.innerHTML= "<h1>Hi</h1>" 不起作用,其他解决方案也一样.
iframe和父文档位于同一个域中.
我需要设置整个文档iframe的html,而不是它的正文.
我需要避免jquery解决方案.
虽然我把一个参数推到了getElementById我想知道这个'是null'错误来自哪里?
TypeError: document.getElementById(...) is null
[Break On This Error]
document.getElementById(elmId).innerHTML = value;
Line 75
Run Code Online (Sandbox Code Playgroud)
除此之外,我想知道为什么标题和时间没有显示,除非我点击其中一个播放列表图片?
我真的很惊讶我之前没遇到过这个问题,但似乎在元素上调用jQueries .html()函数会忽略DOM中的更改,即它会返回原始源中的HTML.IE不会这样做.jQueries .html()只是在内部使用innerHTML属性.
这是否意味着发生?我使用的是Firefox 3.5.2.我在下面有一个示例,无论您将文本框值更改为什么,"container"元素的innerHTML只返回HTML标记中定义的值.该示例不使用jQuery只是为了使它更简单(使用jQuery的结果是相同的).
有没有人有一个解决方法,我可以在当前状态下获取容器的html,即包括对DOM的任何脚本更改?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<script type="text/javascript">
<!--
function BodyLoad(){
document.getElementById("textbox").value = "initial UPDATE";
DisplayTextBoxValue();
}
function DisplayTextBoxValue(){
alert(document.getElementById("container").innerHTML);
return false;
}
//-->
</script>
</head>
<body onload="BodyLoad();">
<div id="container">
<input type="text" id="textbox" value="initial" />
</div>
<input type="button" id="button" value="Test me" onclick="return DisplayTextBoxValue();" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud) <!--HTML CODE-->
<p #mass_timings"></p>
Run Code Online (Sandbox Code Playgroud)
//controller code
@ViewChild('mass_timings') mass_timings: ElementRef;
constructor(private domSanitizer:DomSanitizer)
getInnerHTMLValue(){
this.mass_timings.nativeElement.innerHTML =
this.domSanitizer.bypassSecurityTrustHtml(this.parishDetail.mass_timings);
}
Run Code Online (Sandbox Code Playgroud)
但是mass_timings显示的输出包括文字: -
安全值必须使用[property] = binding
在开始
如何删除此字符串.