我必须创建:
<input type="text">
<textarea>
<div>
<button>
我必须用
div
的内容填充textarea
,但是如果内容包含input
的字符串,则必须用<span>
对其进行着色。例如:
如果
input
包含“is”,而textarea
包含“这是美好的一天”,则每次在“is”字符串出现时,我都应在div
“这是美好的一天”中添加以下文本并上色。我应该使用
indexOf()
和一个循环。我有这个:
var a = $("#inp1").val();
var b = $("#txt").val();
var x = b.indexOf(a);
if (x > -1)
最佳答案
如果您绝对必须使用indexOf
while(b.indexOf(a) != -1) {
b = b.replace(a, '[X]');
}
while(b.indexOf('[X]') != -1) {
b = b.replace('[X]', '<span style="color:yellow;">' + a + '</span>');
}
$("#targetDiv").html(b);
您也可以使用RegExp进行此操作
var a = $("#inp1").val();
var b = $("#txt").val();
var re = new RegExp(a, 'g');
var divContent = b.replace(re, '<span style="color:yellow;">' + a + '</span>');
$("#targetDiv").html(divContent);
这是indexOf的小提琴
http://jsfiddle.net/eva3ttuL/1/