javascript - 通过单击突出显示一个词

标签 javascript jquery

我找到了一个 JQuery 脚本,它允许您通过单击突出显示文本中的单词。

无论如何,是否可以修改只能通过单击突出显示一个单词的代码?因此,如果用户点击第二个词,第一个颜色编码的词将恢复正常。

var words = $( "p" ).first().text().split( /\s+/ );
var text = words.join( "</span> <span>" );
$( "p" ).first().html( "<span>" + text + "</span>" );
$( "span" ).on( "click", function() {
$( this ).css( "background-color", "red" );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-git.js"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Click a word in the paragraph and highlight it.</title>
</head>
<body>
<p>
This domain is established to be used for illustrative examples in documents. You may use this domain in examples without prior coordination or asking for permission.
</p>
</body>
</html>

不幸的是,我无法再从 stackoverflow 找到原始来源。

最佳答案

第一通电话$("span").css("background-color", "");重置所有颜色 <span> s 在设置被点击元素的颜色之前:

var words = $("p").first().text().split(/\s+/);
var text = words.join("</span> <span>");
$("p").first().html("<span>" + text + "</span>");
$("span").on("click", function() {
  $("span").css("background-color", "");
  $(this).css("background-color", "red");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>
  This domain is established to be used for illustrative examples in documents. You may use this domain in examples without prior coordination or asking for permission.
</p>

您还可以将点击的元素保存在变量中:

var words = $("p").first().text().split(/\s+/);
var text = words.join("</span> <span>");
$("p").first().html("<span>" + text + "</span>");
let highlighted;
$("span").on("click", function() {
  $(highlighted).css("background-color", "");
  $(this).css("background-color", "red");
  highlighted = this;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>
  This domain is established to be used for illustrative examples in documents. You may use this domain in examples without prior coordination or asking for permission.
</p>

关于javascript - 通过单击突出显示一个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59084239/

相关文章:

javascript - 根据日期更改链接

javascript - 使用 toUpperCase 方法使 p 元素以大写形式显示

javascript - 在 v-for 循环中调用不同的 onClick 函数

jquery移动按钮文本自动换行

jquery - mousedown 事件有时会在 jquery 可拖动元素上被压制

javascript - 如果页面重新加载,保留 javascript 更改

javascript - 禁用超时按钮

JavaScript 复选框

javascript - 如何在不阻止 jQuery 中的默认设置的情况下阻止父级的委托(delegate)处理程序?

javascript - Jquery 自动完成的正确监听器