Jquery包含:value,在表中查找文本并返回它旁边的td

时间:2014-01-24 12:40:59

标签: javascript jquery

我正在寻找的是一种在桌面上查找文本并报告该字段旁边的td的方法。用户必须输入文本。  出于某种原因,这条线对我不起作用

 $("tr td:contains('" + test + "')")

以下是代码(另见下面的演示):

HTML

<table>
    <tr><td class='eClass'> 4</td><td >test</td></tr>
    <tr><td>blah test blah</td><td class='eClass'>2</td></tr>
    <tr><td>blah blah test</td><td class='eClass'>3</td></tr>
    <tr><td>test blah blah</td><td class='eClass'>4</td></tr>
</table>
<input class="from" value=""></input>


<p class='total'></p>

Jquery的

$(".from").keyup(function () {
    var test = $(".from").val()

    $("tr td:contains('" + test + "')").each(function () {
        var a = $(this).siblings('td.eClass').html()
        $(".total").html(a)

    });

});

演示:http://jsfiddle.net/A2Htn/4/

* 如果我在输入字段中键入4,我应该进行测试。如果我按3我应该得到等等测试 *

我做错了什么?

2 个答案:

答案 0 :(得分:0)

使用

var a=$(this).html()

而不是

var a = $(this).siblings('td.eClass').html()

答案 1 :(得分:0)

我自己找到答案(朋友帮忙)

演示:http://jsfiddle.net/QB79y/

在.each中应该有一个if,以便每个人返回正确的结果,而不仅仅是最后一个(当然)

$( ".from" ).keyup(function() { 
    var  test = $(".from").val();
    $(".tabledata td").each(function(){
      if ($(this).html()==test){
        var a=$(this).siblings('td').html()
        $(".total").html(a) 
          };
    });

});