Javascript 突出显示自定义标记之间的文本

Javascript 突出显示自定义标记之间的文本,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,在xhtml中,我想突出显示属性“ind”具有相同值的两个自动关闭标记s1和s2之间的文本。例如,和 例如 一些文本> 这里的数据 我想突出显示“文本数据”。可以使用Javascript/jQuery实现吗?我可以有许多这样的自动关闭标记对s1和s2,它们的唯一值为“ind”,表示需要突出显示其中的文本。在(X)HTML中没有“自定义标记”这样的东西。你不能只是编标签。它们可能在某些浏览器中工作,但这不是您应该依赖的。对类使用“普通”标记,如div和span 编辑:好的,我想我现在得到你想要

在xhtml中,我想突出显示属性“ind”具有相同值的两个自动关闭标记s1和s2之间的文本。例如,
例如


一些文本>
这里的数据
我想突出显示“文本数据”。可以使用Javascript/jQuery实现吗?我可以有许多这样的自动关闭标记对s1和s2,它们的唯一值为“ind”,表示需要突出显示其中的文本。

在(X)HTML中没有“自定义标记”这样的东西。你不能只是编标签。它们可能在某些浏览器中工作,但这不是您应该依赖的。对类使用“普通”标记,如
div
span

编辑:好的,我想我现在得到你想要的了。但是,您仍然不能使用自定义元素或自动关闭元素,特别是如果您需要支持IE,因为它不支持这两种元素。您需要改用空元素,例如:

<html><body><a><b>Some <span id="s1-1"></span> text></b> <c>data <span id="s2-1"></span>here</c> </a></body></html>
顺便说一句,根据您获取数据的位置和方式,这可能是您应该在服务器端执行的操作,而不是使用JavaScript。

您应该使用
span
div
和名为
highlight
的类,而不是使用“自定义标记”:

<span class="highlight">This text is highlighted</span>
使用jQuery,您可以添加或删除突出显示的
类:

$('span').addClass('highlight')
$('span').removeClass('highlight')
编辑:现在我知道你的问题了

答案是否定的,您不能高亮显示跨越其他html标记的文本,如下所示:

This <b>code <span class="highlight">will</b> not</span> work
此代码不起作用
您必须在
之前关闭span标记,然后再打开它:

This <b>code <span class="highlight">will</span></b>
<span class="hightlight"> work</span> very well.
此代码将
工作得很好。

self-closing自定义标记只是要高亮显示的文本的一个指示符,可以跨越其他html标记。如果我有一个具有相同id/其他可能属性的自动关闭跨度标记对。是否有方法突出显示具有相同id值的span标记之间的文本(尽管id应该是唯一的)。我更具体地使用了自动关闭标记,因为在要突出显示的文本之间可能有其他标记。对于您已经显示的带有span标记“s1-1”和“s2-1”的xhtml,您能否显示带有span标记的示例输出格式以突出显示。这将有助于我理解您正在试图告诉您什么。使用span标记,我必须确保要突出显示的文本应在span开始和结束标记内。在我的例子中,要突出显示的文本之间可以有其他标记,这些标记在跨度内可能不会闭合。我希望有自动关闭标签来指示要突出显示的文本。有没有办法突出显示两个自动关闭的span标记之间的文本,这两个span标记对于某些attibute(比如id)具有相同的值(尽管id应该是唯一的)/自定义attibute?有没有办法填充所有s1、s2对之间具有相同“ind”的所有文本节点的span标记。i、 使用javascript/jquery?您最终找到解决方案了吗?我也需要它。
$('span').addClass('highlight')
$('span').removeClass('highlight')
This <b>code <span class="highlight">will</b> not</span> work
This <b>code <span class="highlight">will</span></b>
<span class="hightlight"> work</span> very well.