我正在尝试执行以下操作:
我在div中写了一个混乱的句子,并且有一个文本框,我在其中得到用户的答案.
现在我想要的是使用jquery,无论他在文本框中输入什么,都会从问题中获取strikedout(abc),以便用户知道他已经选择了哪些单词.
这是我的代码:
$(document).ready(function() {
var orig=$('#original').html();
$('#textBox').val('');
$('#textBox').keyup(function(event) {
var x=$('#textBox').val().split(" ");
$('#original').html(orig);
for(var i=0;i<x.length;i++){
$('#original').html($('#original').html().replace(x[i],'<del>'+x[i]+'</del>'));
}
}
});
});
original是包含文本和文本框的div的id,文本框的id
这适用于没有重复单词的情况.但是,如果一个单词出现不止一次,那么它的第一次出现就会被删除.
例如,如果文本是:发布网络图片可以在错误的网站上使用的目的导致社会问题很多
当我进入时:“联网网站”字样网络,网站和第一次出现应该被打破
然后,当我再次进入时,它的第二次出现应该被删除
解决方法:
根据以下评论更新:
$(document).ready(function() {
var orig = $('#original').html();
$('#textBox').val('');
$('#textBox').keyup(function(event) {
$("#original").html(orig);
var x = this.value.split(" ");
for (var i = 0; i < x.length; i++) {
$("#original").contents().filter(function() {
return this.nodeType === 3 && this.nodeValue.indexOf(x[i]) >= 0;
}).first().replaceWith(function() {
var re = new RegExp("\\b" + x[i] + "\\b");
return this.nodeValue.replace(re, "<del>" + x[i] + "</del>");
});
}
});
});
示例:http://jsfiddle.net/E25Nd/3/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。