有没有办法提取SimpleXMLElement的"innerHTML"?
例如,如何'<div><h1>Hello World</h1></div>'使用SimpleXMLElement从以下XML代码中获取:
<xml>
<body1>
<div><h1>Hello World</h1></div>
</body1>
<body2>
<div><h2>Goodby Moon</h2></div>
</body2>
</xml>
Run Code Online (Sandbox Code Playgroud)
我阅读了文档,我想到的就是$xml->body1->asXML();.它几乎是正确的解决方案,但它也添加了根标记:
<body1>
<div><h1>Hello World</h1></div>
</body1>
Run Code Online (Sandbox Code Playgroud)
是否可以跳过周围的body1标签?
编辑:
xml也可能如下所示:
<xml>
<body1>
<div><h1>Hello World</h1></div>
<div><h1>Hello Moon</h1></div>
Some Text
</body1>
<body2>
<div><h2>Goodby Moon</h2></div>
</body2>
</xml>
Run Code Online (Sandbox Code Playgroud)
在此页面http://blog.zacharyvoase.com/2010/11/11/sockets-and-nodes-i/,在javascript控制台中运行以下代码将引发异常.
var div = document.createElement('div'); div.innerHTML = "»";
Run Code Online (Sandbox Code Playgroud)
但它在我尝试的所有其他页面中都能正常工作.我的问题是关于页面的特殊之处以及为什么chrome和firefox会抛出异常?
不使用实体直接编写字符可以正常工作.
var div = document.createElement('div'); div.innerHTML = "»";
Run Code Online (Sandbox Code Playgroud)
使用其他实体也有效,例如
var div = document.createElement('div'); div.innerHTML = "<";
Run Code Online (Sandbox Code Playgroud) 我试图迭代地改变Id的innerHTML,如:
document.getElementById("test").innerHTML += "<br />"
Run Code Online (Sandbox Code Playgroud)
和
document.getElementById("test").innerHTML += "<table>" + blahblah + "</table>"
Run Code Online (Sandbox Code Playgroud)
但我发现它并不一定按顺序放置我的标签.
当然,这个方法很糟糕,我只是改变了所有内容以继续添加一个字符串,我最后将其分配给Id的innerHTML.
我的问题是:
innerHTML究竟对我插入的标签做了什么,它是确定性的,是否更具特异性?
我已经找到了一种跨浏览器的方式来以编程方式设置IFrame的innerHTML.(如http://roneiv.wordpress.com/2008/01/18/get-the-content-of-an-iframe-in-javascript-crossbrowser-solution-for-both-ie-and-firefox/) .我已经编写了一些示例代码(如下所示),我可以在Safari和Chrome中使用它,但不能使用Firefox.任何人都可以帮我弄清楚我需要做什么(以便携方式)?
<html>
<body>
<div name=FRAME2div id=FRAME2div style="position:absolute; background-color:blue; color:black; border-color:black;border-width:0; left:100px; top:40px; width:200px; height:200px; overflow:scroll; display:block; " >
</div>
<script type="text/javascript">
document.getElementById("FRAME2div").innerHTML = '<iframe border=0 id=IFRAME2 name=IFRAME2 ></iframe>';
document.getElementById("IFRAME2").contentWindow.document.body.innerHTML = '<html><body><p>NETSCAPE</p></body></html>';
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 任何人都可以解释这些错误是什么?
未捕获的TypeError:无法读取null的属性"innerHTML"
在我的网站上查看 这是导致错误的行:
var idPost=document.getElementById("status").innerHTML;
Run Code Online (Sandbox Code Playgroud)
谢谢
我已经看到各种各样的例子接近我正在寻找的东西,但它似乎没有描述它我是如何完全想要的.我是jQuery的初学者,所以解释很受欢迎.
我在寻找这个来切换innerHTML从-到+.任何人都知道有效的方法吗?
jQuery的/ JavaScript的
$(document).ready(function() {
$(".A1").click(function() {
$(".P1").toggle("slow");
$(".A1").html("+");
});
});
Run Code Online (Sandbox Code Playgroud)
HTML
<div class="A1">-</div>
<h2 class="H1">Stuff</h2>
<div class="P1">
Stuffy, Stuffy, Stuffed, Stuffen', Stuffing, Good Luck Stuff
</div>
Run Code Online (Sandbox Code Playgroud)
谢谢,任何与切换HTML元素内部文本相关的内容都会有所帮助.=)
为什么这会执行<script>:
$('#jq_script').html("<script>$('#test').text('test');<\/script>");
Run Code Online (Sandbox Code Playgroud)
但这不是吗?
document.getElementById('js_script').innerHTML = "<script>$('#test').text('test');<\/script>";
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到它
来自jQuery的关于.html()的文档:
此方法使用浏览器的innerHTML属性.某些浏览器可能不会返回完全复制原始文档中HTML源的HTML.例如,如果Internet Explorer仅包含字母数字字符,则有时会忽略属性值周围的引号.
我试图使用innerHTML和我从SQL获得的html + css字符串呈现HTML模板.
模板字符串示例:
<html xmlns="http://www.w3.org/1999/xhtml"> <head><title>Template Name</title><style type="text/css"> p{ color:red; }</style> </head> <body> <h1>#headding#</h1> <p style="color:red;">#paragraph#</p><a href="#url#">#urltext#</a> </body> </html>
Run Code Online (Sandbox Code Playgroud)
现在它渲染HTML很好但看起来它会删除样式标记并只在其中呈现文本.
渲染示例:
HTML渲染部分:
<div [innerHtml]="templateBody">
</div>
Run Code Online (Sandbox Code Playgroud)
Home.component.ts部分:
@Component({
selector: "home",
templateUrl: `client/modules/home/home.component.html`,
encapsulation: ViewEncapsulation.Emulated
})
export class HomeComponent implements OnInit{
templateBody: string;
.....other code
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了封装:ViewEncapsulation.Emulated/None等,尝试了内联CSS,我尝试附加:host >>> inf标签.他们都呈现相同.
有什么建议?
当显示在控制台中时,我在p标记之间得到的结果包含索引3中的空间,这是正确的。
但是当显示在页面上时,我得到“ _ _ _ _”。索引3中的空间不可见。这是CodePen。
如何获得下划线之间要在页面上显示的空间?我什至无法在此处显示空间!它显示为“ _ _ _ _”。下划线2和3之间应该有空格!
非常感谢你!
.toString而不是.join没什么区别。
.textContent而不是.innerHTML也不起作用。
<html>
<p id="myid"></p>
<script>
var myArray = ["_", "_", " ", "_", "_"];
var hiddenWord = document.getElementById('myid');
var temp;
function newGame() {
temp = myArray.join(" ");
hiddenWord.innerHTML = temp;
}
newGame();
console.log("temp variable", temp);
console.log(myArray);
</script>
</html>
Run Code Online (Sandbox Code Playgroud) 我有一个小脚本,innerHTML在点击我页面上的按钮时添加一个名为"doge"的div ,在这个页面上有一个带有CSS关键帧动画的div.
但是,当我单击按钮在我的页面上添加名为"doge"的div时,CSS动画将被"重放".为什么?我该如何解决这个问题?
function addHtml() {
document.getElementById("wow").innerHTML += '<div class="doge">such wow</div>';
}Run Code Online (Sandbox Code Playgroud)
@keyframes color {
10% {
background: #4CAF50;
}
50% {
background: #3F51B5;
}
100% {
background: #009688;
}
}
.myDiv {
background: #000;
color: #fff;
animation: color 1s;
}
.doge {
background: #F57F17;
}Run Code Online (Sandbox Code Playgroud)
<div id="wow">
<div class="myDiv">Hi!</div>
<br>
<button onclick="addHtml()">Add HTML!</button>
</div>Run Code Online (Sandbox Code Playgroud)