1

有没有办法以某种方式标记文本中的几个单词只是为了进一步的程序处理,而不是任何视觉类型的东西?假设我有以下文字:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua。在 vero eos et accusam et justo duo dolores et ea rebum。Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet。

假设gubergren是我的关键字。我不能只解析文本,gubergren因为我不知道关键字的值。我可以做的是在渲染时用标记标记我的关键字:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua。在 vero eos et accusam et justo duo dolores et ea rebum。Stet clita kasd <span class="keyword">gubergren </span>, no sea takimata sanctus est Lorem ipsum dolor sit amet。

现在我可以轻松地解析span带有类名的元素的文本,keyword并且可以获取我的关键字列表。但是如果span与 CSS 样式相关联呢?这在浏览器中看起来很傻。另一方面,我不能仅仅发明一个自己的标签,因为我绝对希望我的网站保持 HTML 有效。

你有什么建议?

4

3 回答 3

3

你有正确的方法。使用带有“关键字”类的跨度标签。您不必担心 css 问题,尤其是如果您是编写 css 的人。不要为“关键字”类设置样式。

如果您不编写 CSS,我无法想象为什么有人会在没有附加类选择器的情况下设置简单标签的样式这样做有可能破坏很多事情。如果您担心“关键字”类附加了 css,那么请使类名具有唯一性。

如果您其他人正在为没有类选择器的标签设置样式,请定义您自己的样式,以摆脱专门为具有“关键字”类的跨度标签的格式。

span.keyword {
   border: 0px;
   display: inline;
   background-color: transparent;
   ... whatever other formatting you may need to remove...
}
于 2013-01-17T16:31:07.137 回答
1

关键字周围有 2 个无形物怎么样?

例子 :

<span style="display: none;">&nbsp;</span>gubergren<span style="display: none;">&nbsp;</span>

您可以检索跨度并获取 2 个跨度之间的内容。但我不觉得这是一个很好的解决方案。

最好的解决方案是不将 css 应用于具有特定类的跨度。但我想你已经知道了。

您还可以使用简单的 html 属性。例子 :

<p data-keyword="gubergren">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
于 2013-01-17T16:29:20.877 回答
0

我不确定文本来自哪里。在我们的 CMS 中,我们使用 || 对于特殊代码。所以我的副本中有:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt ut labore et dolore ||keyword|| magna aliquyam erat, sed diam voluptua. At vero

因为|| 很少用于其他任何事情,然后我解析我的数据服务器端寻找||。我将使用各种中间功能来获取我需要的数据并根据需要更改副本。在单词周围添加 html 元素,将单词替换为要处理的表单或其他服务器端代码。能力是无穷无尽的。

于 2013-01-17T16:34:40.053 回答