我必须创建:
> 1< input type =“text”>
> 1< textarea>
> 1< div>
> 1< button>
我必须用textarea的内容填充div,但如果内容包含输入的字符串,我必须使用< span>对其进行着色.
例如:
如果输入包含“是”并且textarea包含“这是一个美好的一天”,我应该将以下文本放在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的小提琴