我有一个HTML文件,其代码类似于以下内容.
<table>
<tr>
<td id="MyCell">Hello World</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我正在使用如下的javascript来获取价值
document.getElementById(cell2.Element.id).innerText
Run Code Online (Sandbox Code Playgroud)
这将返回文本"Hello World",hello和world之间只有1个空格.我必须保留相同数量的空格,有什么办法可以做到吗?
我尝试过使用innerHTML,outerHTML和类似项目,但我没有运气.
我有一个关于使用Extjs的update()方法的性能,可靠性和最佳实践方法的问题,而不是直接更新Ext元素的dom的innerHTML.
考虑两个陈述:
Ext.fly('element-id').dom.innerHTML = 'Welcome, Dude!';
Run Code Online (Sandbox Code Playgroud)
和
Ext.fly('element.id').update('Welcome, Dude!', false);
Run Code Online (Sandbox Code Playgroud)
我不需要eval()任何脚本,我确信这update()会考虑任何浏览器怪癖.
此外,有谁知道如果使用:
Ext.fly('element-id').dom.innerHTML
Run Code Online (Sandbox Code Playgroud)
是相同的
d.getElementById('element-id').innerHTML
Run Code Online (Sandbox Code Playgroud)
?
浏览器和平台兼容性很重要,如果两者基本相同,那么Ext.element.dom.innerHTML完全update()放弃可能是我最好的解决方案.
在此先感谢您的帮助,
布赖恩
如果你使用类似的东西:
var contents = document.getElementById('foobar').innerHTML;
Run Code Online (Sandbox Code Playgroud)
并#foobar包含<script>标签,是否包含标签<script>?
编辑:他们是.证明:http://jsfiddle.net/trusktr/YBzTB/
我是Javascript的新手,我正在尝试一些事情.我正在使用函数使用innerHTML在表中加载图像.但是图像没有显示,除非我在函数底部调用alert("whatever"),然后在警报可见时显示.我正在使用的代码是(从外部js文件调用该函数)
<script>
function show(){
document.getElementById('imageHolder1').innerHTML="<a href="#"><img='photos/picture.jpg' border=0/></a>";
}
</script>
<body> <input name="b1" type="button" value="pics" onclick="show()"/>
<table><td id='imageHolder1'>picture</td></table>
</body> ``
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它不起作用,我所看到的所有例子都是相似的,我看不出有什么大的区别.即使我试着用标签它也行不通.欢迎任何帮助!在此先感谢,如果你对如何做到这一点有任何建议(因为我还在学习javascript,没有jquery)我也很感激.再次感谢!
我想用 PHP 代码更改innerHTML。但我无法让它工作,我不明白为什么。我希望它更改页面上的一些文本,但来自另一个文件。所以我想我可以使用这个:
document.getElementById ("page"). innerHTML = "<? php echo $ home?>";
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
这是我的代码:
<?php
$home = file_get_contents("home.php");
?>
<script type="text/javascript">
function ChangePage(page)
{
if(page == "home")
{
document.getElementById("page").innerHTML = "<?php echo $home ?";
}
}
</script>
Run Code Online (Sandbox Code Playgroud) 我从两种方法得到相同的结果,但不知道为什么.关于SO的研究告诉我:
.text()返回JUST该元素及其所有后代元素的文本,其中.innerHTML返回该元素中的所有HTML.
然而,进一步的研究告诉我:真正的问题是text()和innerHTML对完全不同的对象进行操作.
我能澄清一下吗?
HTML
<table id="table2">
<th> Col1 </th>
<th> Col2 </th>
<tbody>
<tr>
<td id="data">456</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
JQuery的
$('td').click(function() {
var x=$(this).text();
alert(x); //returns '456'
})
var abc = document.getElementById('data');
var xyz = abc.innerHTML;
alert(xyz); //also returns '456'
Run Code Online (Sandbox Code Playgroud) 我正在创建一个 chrome 扩展。基本上,如果用户单击内容菜单选项,我想在所选文本之前和之后插入 HTML 格式标签。
这些标签被添加到事件页面中,在添加格式标签后,该事件页面会在消息对象的“粘贴”键中向内容脚本触发新值。
我的内容脚本的代码如下:
chrome.runtime.onMessage.addListener(handleRequest)
function handleRequest(message, sender)
{
if (message.paste!==undefined)
{
var newNode = document.createTextNode('');
newNode.innerHTML=message.paste;
var cursor = window.getSelection().getRangeAt(0);
cursor.deleteContents();
cursor.insertNode(newNode);
alert(newNode.innerHTML);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为我这样做是正确的,因为根据这个
如果要将新节点添加到文本节点,则该节点将在插入点处拆分,并且插入发生在两个文本节点之间。
但是,单击上下文菜单选项的结果只是删除所选的任何文本。新文本永远不会添加,但不会将错误打印到控制台。
我知道这不适用于输入元素或文本区域中的内容,现在我只是试图让它在页面上的常规文本上工作。
正如预期的那样,警报弹出窗口的内容是格式化标签包围的选定文本。
有人可以解释我做错了什么吗?我不应该编辑文本节点的 HTML 吗?我是否缺少最后一步来使文本显示?
如果我突出显示该问题的标题,则会出现以下警告框(我单击了删除线选项)。请注意,标题已从页面上消失。

我有一个小脚本,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)
在使用 JavaScript 和 CSS 转换时,我尝试使用 JavaScript 和 innerHTML 动态插入 div 后立即删除 CSS 类。
我真的很惊讶地发现与蓝色 div 的不透明度相关的 CSS 转换没有按照我想要的方式触发(在 Safari 下工作,在 Chrome 下随机工作,在 Firefox Dev Edition 下不起作用)。有人可以解释这种现象吗?
我不确定为什么它的工作方式与红色 div 的工作方式不同。也许我不知道浏览器如何处理 innerHTML ?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Having fun with JS</title>
<style>
.std {
width:100px;
height:100px;
opacity: 1;
transition: opacity 5s;
}
.std--hidden {
opacity: 0;
}
.std--red {
background-color: red;
}
.std--blue {
background-color: blue;
}
</style>
</head>
<body>
<button>click here</button>
<div class='std std--red std--hidden'></div>
<div class='insert-here'>
</div> …Run Code Online (Sandbox Code Playgroud) 有人告诉我在我的 JS 代码中使用 innerHTML 是危险的。我确实明白为什么,但是有人能告诉我这两种使用方式之间是否有区别吗?
第一的:
const onePersonArticle = create('article');
onePersonArticle.className = 'one-person';
const content = ` <label class='info-labels' for="name">NAME: </label><label id='name' class='data-labels'>${member.name}</label>
<label class='info-labels' for="phone">PHONE: </label><label id='phone' class='data-labels'>${member.phone}</label>
<label class='info-labels' for="code-wars">CODEWARS: </label><label id='code-wars' class='data-labels'>${member.cwb} - ${member.cwa}</label>
<label class='info-labels' for="free-code-camp">FREECODECAMP: </label><label id='free-code-camp' class='data-labels'>${member.fccb} - ${member.fcca}</label>
<label class='info-labels' for="notes">NOTES: </label><label id='notes' class='data-labels'>${member.notes}</label>
<span class="person-buttons"><button type="button" name="button" class="button delete-button">?</button>
<button type="button" name="button" class="button edit-button">?</button></span>`;
onePersonArticle.innerHTML = content;
Run Code Online (Sandbox Code Playgroud)
第二:
const onePersonArticle = create('article');
onePersonArticle.className = 'one-person';
onePersonArticle.innerHTML =
` <label class='info-labels' for="name">NAME: </label><label …Run Code Online (Sandbox Code Playgroud)