我正在尝试制作一个自动填充表单,在您键入时会粗体显示结果中的字母。
我所做的功能不起作用:
function setBold () {
var text = $('input#auto_results').val();
var text_length = text.length;
e = $('.result').html();
r = e.replace("<b>", "");
d = r.replace("</b>", "");
n = d.substr(0, text_length);
q = n.bold();
r = d.length - text_length;
m = d.substr(text_length, r);
$('.result').html(q+m);
}
因为如果您有多个结果:
<li class='result'>text</li>
<li class='result'>texter</li>
<li class='result'>textes</li>
<li class='result'>textli</li>
<li class='result'>textwe</li>
它用第一个结果的粗体版本替换结果中的文本。
我想如何在列表中加粗前N个字母:
<li class='result'>textes</li>
<li class='result'>textli</li>
<li class='result'>textwe</li>
使用javascript和/或jquery。
答案 0 :(得分:2)
将html()
与函数回调一起使用,如下所示:
function setBold () {
var text = $('input#auto_results').val();
var text_length = text.length;
$('.result').html(function(i,e){
r = e.replace("<b>", "");
d = r.replace("</b>", "");
n = d.substr(0, text_length);
q = n.bold();
r = d.length - text_length;
m = d.substr(text_length, r);
return q+m;
});
}