我有一个项目列表项目名称。 然后我有一个eventlistener,为keypress事件ckecks。如果用户输入i.g.,则为 。 A以A开头的所有名字应该用A粗体查看。所以所有开始的As应该是大胆的。与jquery highlite文字部件,最佳做法
什么是最好的方式使用jQuery来highlite只有一部分的字符串?
感谢您的帮助
我有一个项目列表项目名称。 然后我有一个eventlistener,为keypress事件ckecks。如果用户输入i.g.,则为 。 A以A开头的所有名字应该用A粗体查看。所以所有开始的As应该是大胆的。与jquery highlite文字部件,最佳做法
什么是最好的方式使用jQuery来highlite只有一部分的字符串?
感谢您的帮助
这里是你可以在你的按键事件中调用突出显示搜索字符串的函数:
function Highlight(search)
{
$('ul > li').each(function() {
if (this.innerHTML.indexOf(search) > -1)
{
var text = $(this).text();
text = text.replace(search, "<span id='highlight' style='font-weight: bold'>" + search + "</span>");
$(this).html(text);
}
else
{
this.innerHTML = $(this).text();
}
});
}
HTML测试:
<ul id='list'>
<li>Bob Jones</li>
<li>Red Smith</li>
<li>Chris Edwards</li>
</ul>
这不是很尖的答案优雅,但它处理匹配字符串要求。
有jQuery插件做文本高亮,但我从来没见过一个突出的话,部分地区。
一个可能的解决办法是把所有人的名字在页面上的第一个字母一个<span>
标签包围,用类:
<span class='A FL'>A</span>ugustine
<span class='C FL'>C</span>arlos
然后,您可以使用jQuery与类名捣鼓。
$('whatever').keypress(function(ev) {
var k = e.which.toUpperCase();
$('#textContainer span.FL').css('font-weight', 'normal');
$('#textContainer span.' + k).css('font-weight', 'bold');
});
请注意,粗体字比普通字体粗,所以会产生用户可能不喜欢的“摇摆”效果。你可能会考虑改变颜色。
感谢您的帮助...... 我理解了它,并详细解析来这里:
var communities = $('#mylist').find('.name');
var temp_exp = new RegExp("^("+match_string+")","i");
communities.each(function(i){
var current = $(this);
var name = current.text();
name = name.replace(temp_exp, '<b>$1</b>');
current.html(name);
});
当所有项目必须有类“名称”。
@helle ...这个清单是一个
不,它不是选择列表,它只是一个元素列表。所以它可能是表中的行,或者是html列表中的li-tags。我使用jquery通过类 – helle 2010-06-09 14:11:40