2014-11-02 34 views
0

所有,功能查找在TD元素文本不工作

我看到的所以这里几种方法,我怎么能找到的文本或HTML,写在表格中的TD元素。出于某种原因,他们似乎没有为我工作。我显然在做一些非常错误的事情,但我无法弄清楚。

编辑:问题是从我的TD总是显示为未定义的HTML()。我似乎无法使用html(),text()等获取文本(EG company0)。

这是我的功能。 #searchbox是输入类型:文本

$(document).ready(function() { 
$('#searchbox').change(function() { 
    var searchText = $(this).val(); 
    $('.prospect_table tr').each(function() { 
     var obj = $(this).find('.propsect_td'); 
     if (typeof obj != 'undefined') { 
      if (hideText(obj.html(), searchText)) 
       $(this).show(); 
      else 
       $(this).hide(); 
     } 
    }); 
}); 
}); 

function hideText(prospectName, text) { 
    if (prospectName == 'undefined') 
     return false; 

    if (prospectName.toLowerCase().indexOf(text.toLowerCase()) >= 0) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

这里是我的源页面

<input type="text" name="txtSearch" id="searchbox" value="Begin typing here..." /> 

<table class="prospect_table"> 
<tr> 
    <th> 
     ProspectName 
    </th> 
    <th> 
     Inactive 
    </th> 
    <th></th> 
</tr> 

<tr> 
    <td class="prospect_td"> 
     Company0 
    </td> 
    <td> 
     <input class="check-box" disabled="disabled" type="checkbox" /> 
    </td> 
    <td> 
     <a href="/CrmWeb/Company/Edit/0">Edit</a> | 
     <a href="/CrmWeb/Company/Details/0">Details</a> | 
     <a href="/CrmWeb/Company/Delete/0">Delete</a> 
    </td> 
</tr> 
<tr> 
    <td class="prospect_td"> 
     Company1 
    </td> 
    <td> 
     <input class="check-box" disabled="disabled" type="checkbox" /> 
    </td> 
    <td> 
     <a href="/CrmWeb/Company/Edit/0">Edit</a> | 
     <a href="/CrmWeb/Company/Details/0">Details</a> | 
     <a href="/CrmWeb/Company/Delete/0">Delete</a> 
    </td> 
</tr> 

等等

我如何能改善这一点,并使其工作有什么建议?也许我需要更多的id标签,而不是类?

感谢您的任何帮助或建议!

+1

'prospectName.toLowerCase()。的IndexOf( ...'请花时间在您的开发者控制台中观察错误 – 2014-11-02 19:01:10

+0

@squint我所得到的就是那个prospectName是undefined – Carson 2014-11-02 19:03:09

+0

这就是它的意思吗?您的'IndexOf'应该是'indexOf'。 – 2014-11-02 19:05:04

回答

1

试试这个。 Changed'.propsect_td '到' .prospect_td”, '的IndexOf' 到 '的indexOf' 和替代的typeof OBJ!= '未定义' 与obj.length!= 0

$(document).ready(function() { 
$('#searchbox').change(function() { 
    var searchText = $(this).val(); 
    $('.prospect_table tr').each(function() { 
     debugger 
     var obj = $(this).find('.prospect_td'); 
     if (obj.length != 0) { 
      if (hideText(obj.html(), searchText)) 
       $(this).show(); 
      else 
       $(this).hide(); 
     } 
    }); 
}); 
}); 

function hideText(prospectName, text) { 
    debugger 
    if (prospectName == 'undefined') 
     return false; 

    if (prospectName.toLowerCase().indexOf(text.toLowerCase()) >= 0) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
0
$(document).ready(function() { 
$('#searchbox').change(function() { 
    var searchText = $(this).val(); 
    $('.prospect_table tr').each(function() { 
     var obj = $(this).find('.prospect_td'); 

     console.log(obj.text()); 
     if (typeof obj != 'undefined') { 
      if (hideText(obj.text(), searchText)) 
       $(this).show(); 
      else 
       $(this).hide(); 
     } 
    }); 
}); 
}); 

function hideText(prospectName, text) { 
    if (prospectName == 'undefined') 
     return false; 

    if (prospectName.toLowerCase().indexOf(text.toLowerCase()) >= 0) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

很少有错别字固定...而不是html()我使用text()属性。小提琴:http://jsfiddle.net/bn1403nk/

+0

不幸的是,这没有奏效。但是,谢谢。 – Carson 2014-11-02 19:19:07

+0

它是在小提琴内部工作,请重新检查 - >您的活动正在改变,如果您想立即改变,请使用键盘...... – sinisake 2014-11-02 19:20:26

+0

我会将其更改为keyup,因为我确实需要即时检查。 – Carson 2014-11-02 19:21:15