我发现了一个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", "");重置所有颜色在设置被单击元素的颜色之前:
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");
});
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");
});
您也可以将单击的元素保存在变量中:
您也可以将单击的元素保存在变量中: 您也可以将单击的元素保存在变量中:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。