我怎样才能实现以下目标:
document.all.regTitle.innerHTML = 'Hello World';
Run Code Online (Sandbox Code Playgroud)
使用jQuery regTitle我的div ID 在哪里?
我尝试使用innerHTMLa 将一些脚本加载到页面中<div>.看起来脚本加载到DOM中,但它永远不会被执行(至少在Firefox和Chrome中).有没有办法让脚本在插入时执行innerHTML?
示例代码:
<!DOCTYPE html>
<html>
<body onload="document.getElementById('loader').innerHTML = '<script>alert(\'hi\')<\/script>'">
Shouldn't an alert saying 'hi' appear?
<div id="loader"></div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
我从HTTP调用中获取大量HTML代码.我将HTML块放在一个变量中并使用[innerHTML]将其插入到我的页面中,但我无法设置插入的HTML块的样式.有没有人有任何建议如何实现这一目标?
@Component({selector: 'calendar',
template: '<div [innerHTML]="calendar"></div>',
providers:[HomeService],
styles: [`
h3 {color:red;}
`})
Run Code Online (Sandbox Code Playgroud)
我想要设置样式的HTML是变量"calendar"中包含的块.
我需要一种方法将HTML附加到容器元素而不使用innerHTML.我不想使用innerHTML的原因是因为它使用时如下:
element.innerHTML += htmldata
它的工作原理是在添加旧的html和新的html之前先替换所有的html.这不好,因为它重置了嵌入式Flash视频等动态媒体......
我能用这种方式做到这一点:
var e = document.createElement('span');
e.innerHTML = htmldata;
element.appendChild(e);
Run Code Online (Sandbox Code Playgroud)
然而,这种方式的问题是文档中现在有额外的span标记,我不想要.
那怎么办呢?谢谢!
我使用普通的js来改变标签元素的内部文本,我不确定我应该使用innerHTML或nodeValue或textContent.我不需要创建新节点或更改HTML元素或任何东西 - 只需替换文本.这是代码的示例:
var myLabel = document.getElementById("#someLabel");
myLabel.innerHTML = "Some new label text!"; // this works
myLabel.firstChild.nodeValue = "Some new label text!"; // this also works.
myLabel.textContent = "Some new label text!"; // this also works.
Run Code Online (Sandbox Code Playgroud)
我查看了jQuery源代码,它使用了nodeValue一次,但是innerHTML和textContent几次.然后我发现这个jsperf测试表明firstChild.nodeValue明显更快.至少这就是我所说的意思.
如果firstChild.nodeValue快得多,那捕获的是什么?它没有得到广泛支持吗?还有其他问题吗?
我有一个脚本,使用一些内容将一些内容插入元素innerHTML.
例如,内容可以是:
<script type="text/javascript">alert('test');</script>
<strong>test</strong>
Run Code Online (Sandbox Code Playgroud)
问题是<script>标签内的代码没有被执行.我用Google搜索了一下,但没有明显的解决方案.如果我使用jQuery插入内容$(element).append(content);,脚本部分eval会在注入DOM之前得到.
有没有人有一段执行所有<script>元素的代码?jQuery代码有点复杂,所以我无法弄清楚它是如何完成的.
编辑:
通过窥视jQuery代码,我已经设法弄清楚jQuery是如何做到的,这导致了以下代码:
Demo:
<div id="element"></div>
<script type="text/javascript">
function insertAndExecute(id, text)
{
domelement = document.getElementById(id);
domelement.innerHTML = text;
var scripts = [];
ret = domelement.childNodes;
for ( var i = 0; ret[i]; i++ ) {
if ( scripts && nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
}
}
for(script …Run Code Online (Sandbox Code Playgroud) 在下面的示例代码中,我将onclick事件处理程序附加到包含文本"foo"的span.处理程序是一个匿名函数,弹出alert().
但是,如果我分配给父节点alert(),则此innerHTML事件处理程序将被销毁 - 单击"foo"将无法弹出警告框.
这可以解决吗?
<html>
<head>
<script type="text/javascript">
function start () {
myspan = document.getElementById("myspan");
myspan.onclick = function() { alert ("hi"); };
mydiv = document.getElementById("mydiv");
mydiv.innerHTML += "bar";
}
</script>
</head>
<body onload="start()">
<div id="mydiv" style="border: solid red 2px">
<span id="myspan">foo</span>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 在PHP DOM实现中,您使用什么函数来获取给定DOMNode的innerHTML?有人能给出可靠的解决方案
当然,outerHTML也会这样做.
为什么以下不适合我?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
Run Code Online (Sandbox Code Playgroud) 我正在尝试将此代码添加到动态创建的div元素中
style = "width:330px;float:left;"
Run Code Online (Sandbox Code Playgroud)
创建动态的代码div是
var nFilter = document.createElement('div');
nFilter.className = 'well';
nFilter.innerHTML = '<label>' + sSearchStr + '</label>';
Run Code Online (Sandbox Code Playgroud)
我的想法是添加后的风格,< div class="well"但我不知道我是怎么做的.