2012-04-24 25 views
1

我想模仿Google的建议列表,所以我有一个自动完成的建议,但我也想加粗字体如果与输入值不匹配,这里有一个例子:JsBin通过事件关键字使自动完成中的字体权重正常

正如你可以看到我已经为CSS 大胆建议和我试图让它正常的,如果它是相同的值:

if($('#input').val() == $('.ui-autocomplete li a').text()){ 
     $('.ui-autocomplete li a').css("font-weight", "normal"); 
} 

没有运气至今。我究竟做错了什么?

回答

1

$('.ui-autocomplete li a').text()没有比较任何一个元素,或者他们每个人单独,而是这似乎来连接所有的可能性,所以,到时候你输入这样的“GHO”比较看起来是:

if ("gho" == "ghost riderghost huntersghost rider 2ghost adventuresghost rider spirit of vengeanceghanaghbghetto hikesghostbusters 3ghost") { 

} 

另一个问题,在本质上是相同的,就是

$('.ui-autocomplete li a').css("font-weight", "normal"); 

将改变风格为所有找到的匹配。我怀疑,这两种行为都不是你想要的。

你可能需要的是这样的:

$("#input").on('keyup', function(e){ 
    var val = $('#input').val(); 
    $.each($('.ui-autocomplete li a'), function() { 
    if (val == $(this).text()) { 
     $(this).css("font-weight", "normal"); 
    } 
    }); 
}); 
+0

不知道。每次$ :)。 ..这使我完全理解,我可以阅读和理解这一点。我不明白的是,它不工作..我想重写jquery'.css(“font-weight”,“normal!important”)中重要的自动完成设置;'但它仍然没有'工作...你知道这是为什么吗? – Youss 2012-04-24 11:35:12

1

试试这个

$("#input").on('keyup', function(e){ 
     var val = $('#input').val(); 
     $.each($('.ui-autocomplete li a'), function() { 
     if (val == $(this).text()) { 
      $(this).addClass('fontWeight'); 
     } 
     }); 
}); 

新增CSS应该

.ui-autocomplete li a { 
    font-weight: bold; 
    } 
    .fontWeight{ 
    font-weight:normal !important; 
    } 
+0

谢谢你尝试,但它不起作用:(我认为改变不应该在一个事件,但在功能(项目)后自动完成权利{ – Youss 2012-04-24 12:15:29