在div中搜索与li元素组

时间:2015-02-27 11:17:15

标签: javascript jquery html

我有<div><li>元素组,我想过滤这些元素。假设有1到10个<li>个元素。如果我在搜索框中输入5,则<div>应仅显示5.当我删除数字5时,它应显示所有<li>元素。

<input type="text">
  <div>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li‌​>7</li>
    <li>8</li>
    <li>9</li>
    <li>10</li>
  </div>

5 个答案:

答案 0 :(得分:0)

我不知道你在做什么,因为你的解释并没有提供太多的信息,但如果你使用一个表而不是一个列表和dataTables jquery pluging有一个实时搜索可能会更好表格内容

答案 1 :(得分:0)

创建li时,使用 testLi_1,testLi_2 ..... 之类的no创建id。 并创建具有相同类 testLi 的元素。

默认情况下显示所有li

$('.testLi').show();

当用户输入值时,创建一个for循环并迭代元素并以下面的方式显示

var userInput = $("inputId").value(); //User Enter value 
for(var i=1; i<= userInput ; i++){
   $('#testLi_'+i).show();
}

答案 2 :(得分:0)

    $(document).ready(function() {
      $('.text').keyup(function(){
       if( $(this).val()!= ''){  
            var valThis = $(this).val().toLowerCase();
            $('.number li').each(function(){               
            var text = $(this).text().toLowerCase();
            (text.indexOf(valThis) !== -1) ? $(this).contents().get(0).nodeValue : $(this).hide(); 
         });       
         }else{
            $('.number li').show();       
         }   

     }); 
    });
    /*-------------- Html ----------------- */
   <div class="number">
    <ul>
        <li>1</li> 
        <li>2</li> 
        <li>3</li> 
        <li>4</li>  
        <li>5</li>     
        <li>6</li> 
        <li>7</li> 
        <li>8</li> 
        <li>9</li> 
        <li>10</li>  
    </ul>
</div>
<input name="" class="text" type="text" />

答案 3 :(得分:0)

$('input').keyup( function(){
    if($(this).val() == ''){
        $('li').css('display', 'visible')
    } else {
        $('li').css('display', 'none')
        $('li:eq('+($(this).val()-1)+')').css('display', 'visible')
    }
});

<!-- html -->
<input type="text">
    <div>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
    </div>

答案 4 :(得分:0)

试试这样: -

<input type="text" id='text1' onblur="myFunction()">
<div>
 <ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
 </ul>
</div>

<script>
function myFunction() {
var txt =$("#text1").val();
$("ul li").each(function(){
if(txt.length>0){   
 if($(this).html() == txt){
  $(this).show();
 }else{
  $(this).hide();
 }
}else{
$(this).show();
}
});
}
</script>