您可以使用部分乍得解决方案来检索包含特定文本的跨度。
然后,不用对整个 HTMLElement 应用 CSS 规则,您可以使用 .html() 检索其内容,使用特定的 <span> 包装特定单词,然后再次使用 .html() 方法更新内容。
// Retrieve and explode URL
var urlParts = window.location.href.split("?");
if (urlParts.length == 2)
{
// Retrieve all span containing the word
$("span:contains('" + urlParts[1] + "')").each(function(index, spanElement) {
var jQSpan = $(spanElement);
jQSpan.html(jQSpan.html().replace(urlParts[1], '<span class="special">' + urlParts[1] + '</span>'));
});
}
假设您有一个 .special CSS 类,它会突出显示单词。
.special {
background-color: yellow;
}
注意:Javascript函数中的单词可以通过PHP或其他服务器端语言注入。
这是一个完整的示例,假设您的 URL 是 http://path/to/your/file.php?Lorem
<html>
<head>
<script type="text/javascript" src="path/to/your/jQuery.js"></script>
</head>
<body>
<span>
Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression.
</span>
<script type="text/javascript">
// Start when DOM is ready
$(document).ready(function() {
var urlParts = window.location.href.split("?");
// Highlight word if we have a word in parameter
if (urlParts.length == 2)
{
// Retrieve all span containing the word
$("span:contains('" + urlParts[1] + "')").each(function(index, spanElement) {
var jQSpan = $(spanElement);
jQSpan.html(jQSpan.html().replace(urlParts[1], '<span class="special">' + urlParts[1] + '</span>'));
});
}
});
</script>
</body>
</html>
解释:当 DOM 准备好时,Javascript 代码将尝试提取 URL 中“?”之后的部分。 (在我们的例子中,这是“Lorem”)。然后,Javascript 通过 jQuery 检索所有包含此单词的 span,并在每个 span 上循环以使用特殊 span 包装单词(CSS 类为“special”的 span)
如果你更改 URL 中的单词并重新加载页面,高亮将动态变化