标题非常清楚:用文本填充跨度innerHTML
和createTextNode
(用于Append
)之间是否有任何重大差异?
创建TextNode并将其附加到HTML元素而不是直接设置其textContent有什么好处?
假设我有一个跨度.
var span = document.getElementById('my-span');
Run Code Online (Sandbox Code Playgroud)
我想改变它的文字.使用的优点是什么:
var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);
Run Code Online (Sandbox Code Playgroud)
过度
span.textContent = 'hello';
我正在动态生成内容,在某些情况下,我需要将a设置
为<span>
元素的唯一内容.
但是,以下添加
为文本vs添加空格:
var foo = document.createElement("span")
foo = document.createTextNode(" ");
Run Code Online (Sandbox Code Playgroud)
这是有道理的,所以我想知道,如果
没有(!)使用,我将如何正确添加innerHTML
感谢帮助!
javascript whitespace innerhtml createtextnode createelement
我想在当前范围(W3C范围)插入html.
我想我必须使用insertNode方法.它适用于文本.
例:
var node = document.createTextNode("some text");
range.insertNode(node);
Run Code Online (Sandbox Code Playgroud)
问题是我想插入html(可能类似于"<h1> test </ h1>更多文本").而且没有createHTMLNode().
我尝试使用createElement('div'),给它一个id,并将html作为innerHTML,然后在插入后尝试用它的nodeValue替换它,但它给了我DOM错误.
有没有办法做到这一点,而不是在我想要插入的html周围获得额外的html元素?
我有一个函数,使用Php的DOMDocument替换字符串中的锚点'href属性.这是一个片段:
$doc = new DOMDocument('1.0', 'UTF-8');
$doc->loadHTML($text);
$anchors = $doc->getElementsByTagName('a');
foreach($anchors as $a) {
$a->setAttribute('href', 'http://google.com');
}
return $doc->saveHTML();
Run Code Online (Sandbox Code Playgroud)
问题是loadHTML($ text)围绕doctype,html,body等标签中的$ text.我尝试通过这样做而不是loadHTML()来解决这个问题:
$doc = new DOMDocument('1.0', 'UTF-8');
$node = $doc->createTextNode($text);
$doc->appendChild($node);
...
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会编码所有实体(包括锚点).有谁知道如何关闭它?我已经彻底查看了文档,并试图破解它,但无法弄明白.
谢谢!:)
作为一个特殊的要求,我一直在试图逃跑"
用\"
在写XML
使用DOM
.
不幸的是,当我写文本时Document.createTextNode(TextValue)
,它会输出\&quot;
.但是,预期的是\"
细节:
写文本值:
public static boolean setDOMElementValue(Document doc, Element elem, String nodeValue) {
try {
elem.appendChild(doc.createTextNode(nodeValue));
return true;
} catch (DOMException ex) {
LOG.log(Level.SEVERE, ex.toString());
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
编写XML:
public static boolean writeDOMToXML(Document doc, String xmlFilePath) {
try {
doc.setXmlStandalone(true);
// write content into xml file
// Creating TransformerFactory and Transformer
Transformer tr = TransformerFactory.newInstance().newTransformer();
// Setting Transformer's output properties
tr.setOutputProperty(OutputKeys.INDENT, "yes");
tr.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
tr.setOutputProperty(OutputKeys.METHOD, …
Run Code Online (Sandbox Code Playgroud) 当我单击表格中的项目时,我需要将该项目添加到列表中并显示该列表。
这是我添加/显示列表中项目的代码:
var myList = document.getElementById('my-list');
function addItemToList(id) {
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(id));
myList.appendChild(entry);
};
Run Code Online (Sandbox Code Playgroud)
这很好用,但我还需要为列表中的每个项目添加一个“删除”按钮。
但是当我添加+ ' <a href="#">delete</a>'
到createTextNode()
参数时,它不起作用。这是因为,很明显,textNodes 只能有纯文本。
那么如何让这段代码与 HTML 标签一起工作呢?是否有任何 JS 或 Jquery 方法createTextNode()
可以做同样的事情,但允许 HTML 标签?
我\n
在Javascript中有一个带有换行符的字符串,我想在Javascript中替换另一个文本createTextNode()
.
<script type="text/javascript">
function changeText() {
var Explanation="Test\n Test2";
var parent3 = document.getElementById("The_Explanation");
parent3.innerHTML='';
var myP3 = document.createElement("p");
var myText3 = document.createTextNode(""+Explanation);
myP3.appendChild(myText3);
parent3.appendChild(myP3);
}
</script>
Run Code Online (Sandbox Code Playgroud)
到目前为止,所有尝试将换行都放到新文本中失败了.该更换所有功能\n
于<br>
只带我到结果
"Test<br> Test2"
Run Code Online (Sandbox Code Playgroud)
任何人的想法?
我正在将textnodes添加到documentFragment中,如下所示:
var foo = document.createDocumentFragment();
var someText = "Hello World";
foo.appendChild(document.createTextNode(someText));
Run Code Online (Sandbox Code Playgroud)
这工作正常,但有时我传递"文本",其中包括这样的内联链接:
var someOtherText = "Hello <a href='www.world.com'>World</a>";
Run Code Online (Sandbox Code Playgroud)
我的处理程序中的哪个转换为硬编码文本而不是链接.
问题:
如何将上述HTML字符串附加到documentFragment中?如果我不使用,textNodes
可以使用appendChild
吗?
如果我有
var t = document.createTextNode(text)
parent.appendChild(t);
Run Code Online (Sandbox Code Playgroud)
是否可以简单地更新内容t
?
我想改变里面的文字parent
而不使用removeChild
,createTextNode
和appendChild
.为什么我需要这个而不仅仅是使用innerHTML
?因为我不想用HTML代码更新元素的内容,并且text
可能包含特殊字符,例如<或&,它应该由TextNode
DOM方法解析.
谢谢,
汤姆
createtextnode ×10
javascript ×8
dom ×3
innerhtml ×3
domdocument ×2
html ×2
anchor ×1
appendchild ×1
href ×1
java ×1
jquery ×1
line-breaks ×1
list ×1
php ×1
string ×1
whitespace ×1
xml ×1