-1

ユーザーが場所の名前を検索できるテキスト フィールドがあります。結果に表示されるユーザーが入力したものを除いて、結果のテキストを強調表示するにはどうすればよいですか? 以下は、jQuery での私のコードです。

<input maxlength="64" id="war_desc" name="searchtext" size="20" class="form200" autocomplete="off" value="">

<div class="auto-complete autocomplete_choices" data-component-bound="true" style="top: 352px; left: 352.5px; width: 172px; display: none;">
<ul>
        <!-- Search result will be append here by html() -->
</ul>
</div>

<script type="text/javascript">
$('#war_desc').keyup(function(e){
    var search_place = $(this).val();
    if(search_place == ''){
        $('.autocomplete_choices').hide();
    } else {
        $.ajax({
            url:'".$baseUrl."business/searchnew"."',
            data:{'search_place':$(this).val()},
            dataType:'json',
            Type:'POST',
            cache:false,
            success:function(data){

                var listHtml = '';
                for(var i=0; i<data.length; i++){
                listHtml += '<li class="item" data-display-value="Shoe Exchange" title=Shoe Exchange>'+data[i]['business_name']+'</li>';
            }
                $('.autocomplete_choices').show();
                $('.autocomplete_choices ul').html(listHtml);
            }
        });
    }
})
</script>

以下は、私の問題を説明する画像です。

ここに画像の説明を入力

ありがとう!!

4

2 に答える 2

0

この単純な文字列置換メソッドを使用できます

var str = "Hello zlippr";
str = "Hello"+str.replace(str,"<b>"+str+"</b>").replace("Hello","")
document.writeln(str)

コードは次のようになります

data[i]['business_name'] = $(this).val()+data[i]['business_name'].replace(data[i]['business_name'],"<b>"+data[i]['business_name']+"</b>").replace($(this).val(),"")
'<li class="item" data-display-value="Shoe Exchange" title=Shoe Exchange>'+data[i]['business_name']+'</li>';
于 2013-03-08T04:14:03.317 に答える
0

ここでピータームが見つけた答えを使用する

jQuery を使用した単純なテキストの強調表示

最後の行を次のように変更します

$(this).html(text.replace(new RegExp("(" + keywords.join('|') + ")" , 'gi'), "<b>$1</b>"));

$(this).html('<b>' + text.replace(new RegExp("(" + keywords.join('|') + ")" , 'gi'), "</b>$1<b>")) + '</b>';

デモ

于 2013-03-08T03:45:21.570 に答える