2017-02-01 45 views
1

如何只搜索b标签而不搜索整个div。 现在我可以搜索整个div,但我只想在b标签中搜索标题。如果有一个名称,在列表中,它已被删除 HTML:Javascript搜索栏只搜索标题

<div class="row"> 
    <div class="col-md-3"> 
    <div class="panel panel-default" id="list"> 
     <div class="panel-header"> 
      <div class="input-group"> 
       <input type="text" class="form-control" placeholder="Search for users" id="searchName"/> 
       <div class="input-group-btn"> 
        <div class="btn-group"> 
         <button type="button" class="btn btn-primary"> 
          <span class="glyphicon glyphicon-search"></span></button> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="panel-body" id="user1"> 
      <div class="row"> 
       <div class="col-md-4"> 
        <img src="" class="img-thumbnail"> 
       </div> 
       <div class="col-md-8"> 
        <b>Pieter</b><br> 
        (Laatste bericht)<br> 
        <i>12:01</i> 
       </div> 
      </div> 
     </div> 
     <div class="panel-body" id="user2"> 
      <div class="row"> 
       <div class="col-md-4"> 
        <img src="" class="img-thumbnail"> 
       </div> 
       <div class="col-md-8"> 
        <b>Karel</b><br> 
        (Laatste bericht)<br> 
        <i>11:15</i> 
       </div> 
      </div> 
     </div> 
     <div class="panel-body" id="user3"> 
      <div class="row"> 
       <div class="col-md-4"> 
        <img src="" class="img-thumbnail"> 
       </div> 
       <div class="col-md-8"> 
        <b>Pilot</b><br> 
        (Laatste bericht)<br> 
        <i>9:36</i> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

的Javascript:

function contains(text_one, text_two){ 
    if (text_one.indexOf(text_two) != -1){ 
     return true; 
    } 
} 

$("#searchName").keyup(function() { 
    var searchName = $("#searchName").val().toLowerCase(); 
    $(".panel-body").each(function() { 
     if(!contains($(this).text().toLowerCase(), searchName)) { 
      $(this).hide(); 
     } 
     else { 
      $(this).show(); 
     } 
    }); 
}); 
+2

尝试: “如果(!包含($​​(本).find( 'B')文本()toLowerCase(),searchName)。){”? –

+0

谢谢,这工作。我对JavaScript很陌生,需要查找很多,但找不到任何真正的答案。非常感谢! –

+0

如果我将此作为答案添加并且您会批准它,这样可以吗? –

回答

2

使用find()在条件把重点放在元素的儿童B标签:

之前:

if(!contains($(this).text().toLowerCase(), searchName)) { 

后:

if(!contains($(this).find('b').text().toLowerCase(), searchName)) {