您可以使用部分乍得解决方案来检索包含特定文本的跨度。然后,不用对整个 HTMLElement 应用 CSS 规则,您可以使用 检索其内容.html()
,使用 specific 包装特定单词,<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 检索包含该单词的所有跨度,并在每个跨度上循环以使用特殊跨度包装单词(具有 CSS 类“特殊”的跨度)
如果您更改 URL 中的单词并重新加载页面,突出显示将动态更改