2012-06-22 174 views
0

我试图通过.list里面的p标签内容搜索,我可能只是在复杂化,但我的警报不工作,也许是因为其他代码我在页面上没有发挥作用,但我想知道是否有人能帮我弄清楚我哪里出错了。jQuery搜索使用标签内的.find

JS

  $(document).ready(function() { 
      var sresults = $('.mainsearch input').val(); 

      var sfinder = $('.list p').find(sresults).text(sresults); 


      $('.mainsearch input').keyup(function() { 
      $('.search-help').append(sfinder); 

      alert(sfinder); 

      }); 
      }); 

HTML

  <div class="mainsearch"> 
      <input/> 
      <div class="search-help">Results: 
      </div> 
      </div> 


      <div class="list"> 
      <span><p>test</p></span> 
      <span><p>another result</p></span> 
      <span><p>yet another result</p></span> 
      </div> 
+0

什么是 “我的警报不工作” 是什么意思?你想要做什么,它在做什么?你的代码应该在每次你从你的'输入'字段的一个键上拿起一个手指时提醒一些事情(可能是一个空的对话框,因为'sfiner'没有被定义在任何地方)。 – Amadan

+0

sresults不会包含任何东西,因为你的'input'标签没有任何属性,所以找不到任何东西 – SpaceBison

+0

'sfinder'应该包含什么?你用来给这个变量赋值的代码没有意义。 – Blazemonger

回答

1

这样的事情?

$(document).ready(function() { 
    $('.mainsearch input').keyup(function() { 
    var sresults = $('.mainsearch input').val(); 
    var sfinder = $('p:contains('+sresults+')').text(); 
    $('.search-help').text("Results:" + sfinder); 
     alert(sfinder); 
    }); 
}); 

http://jsfiddle.net/h7uYB/

更新:

试试这个:

http://jsfiddle.net/h7uYB/2/

+0

这正是我要感谢的。 – Blynn

+0

有没有办法在这之后添加一个中断.. var sfinder = $('p:contains('+ sresults +')')。text(); +'
' – Blynn

+0

@Blynn我正在更新答案。 – undefined

1

错字?

alert(sfiner)

应该

alert(sfinder)

1

尝试使用:contains() Selector。来自网站:

说明:选择包含指定文本的所有元素。 匹配文本可以直接出现在所选元素,任何元素的后代或其组合中。与属性值选择器一样,contains()的括号内的文本可以写为裸字或用引号包围。文本必须有匹配的案例才能被选中。

所以你:

var sfinder = $('.list p:contains(' + sresults + ')'); 
0

你只是想返回匹配什么类型的段落?然后,你要使用:contains()

$(document).ready(function() { 
    $('.mainsearch input').keyup(function() { 
     var sresults = $('.mainsearch input').val(); 
     var sfinder = $('.list p:contains("' + sresults + '")'); 
     //$('.search-help').append(sfinder); 

     console.log(sfinder); 

    }); 
});​ 

http://jsfiddle.net/mblase75/kQnTV/

你可能会瞄准了这一点,虽然:

$(document).ready(function() { 
    $('.mainsearch input').keyup(function() { 
     var sresults = $('.mainsearch input').val(); 
     var sfinder = $('.list p:contains("' + sresults + '")'); 
     $('.search-help').html(sfinder.clone()); 
    }); 
});​ 

http://jsfiddle.net/mblase75/kQnTV/1/