问题标签 [textnode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5523 浏览

javascript - JavaScript:如何从元素的所有后代中获取文本,而不考虑脚本?

我当前的项目涉及根据提供的选择器从元素及其所有后代中收集文本内容。

例如,当提供选择器#content并针对此 HTML 运行时:

我的脚本会返回(经过一点空白清理):

这是一些文字。变种测试=真;这是更多的文本。

但是,我需要忽略<script>元素中出现的文本节点。

这是我当前代码的摘录(从技术上讲,它基于一个或多个提供的选择器进行匹配):

这有点过于简单,因为它只返回与提供的选择器匹配的元素(及其后代)中的所有文本节点。<script>我正在寻找的解决方案将返回所有文本节点,但属于元素的节点除外。它不需要特别高性能,但我确实需要它最终是跨浏览器兼容的。

我假设我需要以某种方式遍历与选择器匹配的元素的所有子元素,并累积除<script>元素内的所有文本节点之外的所有文本节点;一旦它已经滚动到从所有文本节点累积的字符串中,它看起来就没有任何方法可以识别 JavaScript。

我不能使用 jQuery(出于性能/带宽原因),尽管您可能已经注意到我确实使用了它的 Sizzle 选择器引擎,所以 jQuery 的选择器逻辑是可用的。

提前感谢您的帮助!

0 投票
7 回答
18303 浏览

javascript - 文本节点的 getElementsByTagName() 等效项

有没有办法获取textNode文档中所有对象的集合?

getElementsByTagName()非常适合 Elements,但textNodes 不是 Elements。

更新:我意识到这可以通过遍历 DOM 来完成 - 正如下面的许多建议。我知道如何编写一个查看文档中每个节点的 DOM-walker 函数。我希望有一些浏览器原生的方式来做到这一点。<input>毕竟,我可以通过一个内置调用获得所有的 s,但不是所有的 s,这有点奇怪textNode

0 投票
1 回答
419 浏览

xslt - 电话号码转换。括号中的单独前缀

有一个元素:<phone>(987) 123-45-67</phone>

有必要将其转换为:<span><small>(987)</small>&#160;123-45-67</span>.

如何制作?

0 投票
3 回答
2923 浏览

javascript - javascript innerHTML without childNodes?

im having a firefox issue where i dont see the wood for the trees using ajax i get html source from a php script

this html code contains a tag and within the tbody some more tr/td's

now i want to append this tbody plaincode to an existing table. but there is one more condition: the table is part of a form and thus contains checkboxe's and drop down's. if i would use table.innerHTML += content; firefox reloads the table and reset's all elements within it which isnt very userfriendly as id like to have

what i have is this

either this is so trivial that i dont see the problem OR its a corner case and i hope someone here has that much of expirience to give an advice on this - anyone can imagine why i get textnodes and not the finally parsed dom elements i expect?

btw: btw i cant give a full example cause i cant write a smaller non working piece of code its one of those bugs that occure in the wild and not in my testset

thx all

0 投票
3 回答
15173 浏览

javascript - JS DOM:通过文本内容获取元素

我正在寻找一种使用 JS 在 DOM 树上执行全文搜索的方法。总之,我想检索包含给定字符串的文本节点列表。

我已经尝试过 mootools'Element.getElements ( ':contains[string]' )但我无法让它与包含空格的字符串一起使用。

编辑:jQuery 和 mootools 似乎让他们的:contains操作员通过树遍历工作。这意味着没有本地搜索页面的方式,这是正确的吗?如果页面很大并且您拥有的有关元素的唯一信息是正在搜索的字符串,则似乎效率很低。我错了吗?

我正在考虑索引所有文本节点并检查每个正在搜索的字符串的索引,但是,在我的项目中,没有办法知道 DOM 何时更新以保持这样的索引是最新的。

有更好的想法吗?

谢谢

0 投票
0 回答
374 浏览

jquery - JQUERY 文本节点 - 查找元素中的最后一个句子,并将其包装在跨度标记中

可能重复:
给定一个 ID,找到最后一个句子并将其替换为 span 包装器

给出一个带有句子的文本块的 DIV,意思是句号。

如何使用 JQUERY 文本节点找到最后一个句子并将最后一个句子包装在 SPAN 标记中?

谢谢

0 投票
1 回答
6580 浏览

javascript - JavaScript: Add elements in textNode

I want to add an element to a textNode. For example: I have a function that search for a string within element's textNode. When I find it, I want to replace with a HTML element. Is there some standard for that? Thank you.

0 投票
3 回答
1498 浏览

jquery - 使用 phpQuery 选择特定的文本节点

好吧,这让我发疯了。我正在尝试使用 phpQuery 对以下看似微不足道的 HTML 进行屏幕抓取:

日期很简单,因为它包含在 nobr 标签中,例如。$element[':first-child']->text()成功了。 但是,如何在第二段文字上戴上脏兮兮的手套呢?

CSS 仅适用于元素,因此nth-child(2),(3)返回周围的<br>标签,而不是文本。

如果我可以 XPath 它,第二个节点.//text()将是黄金。但显然在 phpQuery-land 中,上下文$element->xpath->query('.//text()')是文档根目录,所以我得到了整个文档中的每一段文本!

想法?如何使用 jQuery 选择文本节点中的所有解决方案?似乎涉及到 Javascript DOM 操作,这比 PHP 糟糕的 DOM API 要少得多。也许只是将整个元素转储到字符串并爆炸它<br>是要走的路......

0 投票
4 回答
1138 浏览

css - 我如何设置作为正文元素的直接子级的文本节点?

我有一个正文元素,其中包含文本节点作为直接子节点,但也包含段落。现在,我想创建我的 css,以便这个 textnodes 获得特定的 css 设置。另一方面,我不想为层次结构更深的文本节点设置样式(即其中一个段落的子节点)。

如何在不设置不是直接子级的文本节点的情况下设置作为正文元素的直接子级的文本节点的样式?

0 投票
3 回答
1198 浏览

javascript - 通过javascript强制Firefox在DOM解析中跳过“文本节点”


,我正在编写一个 javascript 代码来遍历 HTML dom 并突出显示元素。
我的问题是 Firefox 返回空格作为文本节点。
有没有办法强制它只返回标签?例如我需要“firstChild”总是返回第一个标签而不是任何文本!

谢谢