标签: textnode

TEXT_NODE:仅返回文本?

我正在使用JavaScript来从DOM对象中提取所有文本.我的算法遍历DOM对象本身,它是后代,如果节点是TEXT_NODE类型而不是累积它的nodeValue.
出于一些奇怪的原因,我也得到了类似的东西:

#hdr-editions a { text-decoration:none; }
#cnn_hdr-editionS { text-align:left;clear:both; }
#cnn_hdr-editionS a { text-decoration:none;font-size:10px;top:7px;line-height:12px;font-weight:bold; }
#hdr-prompt-text b { display:inline-block;margin:0 0 0 20px; }
#hdr-editions li { padding:0 10px; }
Run Code Online (Sandbox Code Playgroud)

我该如何过滤?我需要使用其他东西吗?我只想要文字.

javascript dom textnode

3
推荐指数
1
解决办法
1733
查看次数

在svg文本元素中添加带有空格的文本

我试图添加一些包含几个空格的文本到svg文本元素.我完全不屑一顾,因为当有一个以上的空格后,它们被正确地添加到元素中但不会显示在浏览器窗口中.

这个人在这里使用文本元素中的空格,当我将其重现为静态时它工作正常,但是当用js添加文本时,空格会消失!

嵌入在HTML中的SVG中的重要空白

如何将带有空格的文本动态添加到svg?

谢谢任何答案!

    var legend = document.createElementNS("http://www.w3.org/2000/svg", "text");
    var tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
    // Set any attributes as desired
    legend.setAttribute("id","legend");
    legend.setAttribute("text-anchor", "middle");
    legend.setAttribute("alignment-baseline", "hanging");
    legend.setAttribute("xml:space","preserve");
    tspan.setAttribute("xml:space","preserve");
    tspan.setAttribute("id","tspanObj");
    var myText = document.createTextNode(legendTxt);
    tspan.appendChild(myText);
    legend.appendChild(tspan);
    legend.setAttribute("x", Math.round(this.options.windowWidth/2));
    legend.setAttribute("y", this.options.upperPadding+this.options.barH+this.options.legendDist);
    this.elements.jSvgElem.append(legend);
Run Code Online (Sandbox Code Playgroud)

javascript whitespace svg text textnode

3
推荐指数
1
解决办法
6429
查看次数

在IE8及以下版本中,Javascript"Node"未定义

我有以下代码似乎在除IE8及以下的所有浏览器中都能正常工作.

$("table.availability").each( function() {
    var siteName = $(this).parent().siblings("h2").contents().filter(function() { return this.nodeType == Node.TEXT_NODE; }).text()
    alert(sitename);
});
Run Code Online (Sandbox Code Playgroud)

它获取元素的内容,并删除子元素中包含的所有内容,只留下该元素的文本.

我得到的错误说Node是未定义的 - 所以我将它声明在js文件的顶部然后得到相同的消息,TEXT_NODE所以我声明了.然后我得到以下错误:

Unable to get property 'TEXT_NODE' of undefined or null reference

任何人都可以帮我解决这个问题,或者任何人都可以想到一个更好的方法来获得相同的结果.谢谢.

javascript jquery textnode nodes

3
推荐指数
1
解决办法
2929
查看次数

在ContentEditable中,如何获得插入符号前面的元素的引用?

我正在尝试编写一个函数,该函数将keyup在contentEditable div中为插入符号前面的元素提供引用.

如果插入符号位于文本节点中,则该函数应返回null.如果插入符号位于contentEditable的开头,则该函数应返回null.

但是如果插入符号位于文本节点的开头,并且此文本节点前面紧跟一个元素(如Span),则该函数应返回对此元素的引用.

并且,如果插入符号位于两个Html元素之间(例如,在两个Spans之间),则它应该返回对插入符号之前的元素的引用,即两个元素中的第一个.

如果有两个或多个文本节点紧跟在一起,则应将它们视为单个文本节点.

我已经开始拼凑一些东西了.我正在考虑使用范围偏移来计算我到文本节点的距离,但感觉过于复杂.我不禁想到有一些我没想到的明显的东西.

element range caret contenteditable textnode

1
推荐指数
1
解决办法
3146
查看次数

如何获取文档片段中的所有文本节点?

我得到用户选择的文字:

var selection = window.getSelection();
var selectRange = selection.getRangeAt(0);

var content = range.cloneContents(); // DocumentFragment
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得textNodeDocumentFragment内容?

javascript textnode documentfragment

1
推荐指数
2
解决办法
1538
查看次数

使用元素替换TextNode中间的文本

我想在TreeWalker的文本节点中插入html标签,但TreeWalker强制我的html括号进入< > 无论我尝试过什么.这是代码:

var text;
var tree = document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT);
while (tree.nextNode()) {
    text = tree.currentNode.nodeValue;
    text = text.replace(/(\W)(\w+)/g, '$1<element onmouseover="sendWord(\'$2\')">$2</element>');
    text = text.replace(/^(\w+)/, '<element onmouseover="sendWord(\'$1\')">$1</element>');
    tree.currentNode.nodeValue = text;
}
Run Code Online (Sandbox Code Playgroud)

使用\ <或"而不是'将无济于事.我的解决方法是将所有DOM树复制到一个字符串并用它替换html主体.它适用于非常简单的网页并解决我的第一个问题,但是糟糕的黑客攻击并不会在一个简单的页面上工作.我想知道我是否可以直接使用文本节点而不是使用解决方法.以下是(当前错误)解决方法的代码:

var text;
var newHTML = "";
var tree = document.createTreeWalker(document.body);
while (tree.nextNode()) {
    text = tree.currentNode.nodeValue;
    if (tree.currentNode.nodeType == 3){
        text = text.replace(/(\W)(\w+)/g, '$1<element onmouseover="sendWord(\'$2\')">$2</element>');
        text = text.replace(/^(\w+)/, '<element onmouseover="sendWord(\'$1\')">$1</element>');
        }
    newHTML += text
}
document.body.innerHTML = newHTML;
Run Code Online (Sandbox Code Playgroud)

编辑:我意识到更好的解决方法是自定义标记文本节点((Customtag_Start_Here)等),将整个DOM复制到字符串,并使用我的海关标签来识别文本节点并以这种方式修改它们.但如果我不必,我宁愿不要.

html javascript dom textnode

1
推荐指数
1
解决办法
1559
查看次数

使用TreeWalker检索非Javascript文本节点

这个问题教会如何获取文档中的所有TextNode,这也是我的Javascript文本.过滤掉所有Javascript代码节点的最佳方法是什么?

javascript dom dhtml textnode

1
推荐指数
1
解决办法
552
查看次数

使用SceneKit时如何将文本放在特定位置?

我试图遵循与圆柱体,盒子......相同的简单逻辑,所以只需定义textNode的位置,但它不起作用.

func makeText(text3D: String, position: SCNVector3, depthOfText: CGFloat, color: NSColor, transparency: CGFloat) -> SCNNode
{
    let textTodraw = SCNText(string: text3D, extrusionDepth: depthOfText)
    textTodraw.firstMaterial?.transparency = transparency
    textTodraw.firstMaterial?.diffuse.contents = color
    let textNode = SCNNode(geometry: textTodraw)
    textNode.position = position        
    return textNode
}
Run Code Online (Sandbox Code Playgroud)

textnode scenekit swift3

1
推荐指数
1
解决办法
2551
查看次数