Javascript 函数查找td元素中不工作的文本
全部, 我在这里看到了几种方法,它们都是关于如何查找在表中td元素中编写的文本或html的。出于某种原因,他们似乎不为我工作。我显然做错了什么,但我不知道是什么 编辑:问题是my td中的html()始终显示为未定义。我似乎无法使用html()、text()等获取文本(如company0) 这是我的职责#searchbox是一种输入类型:文本Javascript 函数查找td元素中不工作的文本,javascript,jquery,html,Javascript,Jquery,Html,全部, 我在这里看到了几种方法,它们都是关于如何查找在表中td元素中编写的文本或html的。出于某种原因,他们似乎不为我工作。我显然做错了什么,但我不知道是什么 编辑:问题是my td中的html()始终显示为未定义。我似乎无法使用html()、text()等获取文本(如company0) 这是我的职责#searchbox是一种输入类型:文本 $(document).ready(function () { $('#searchbox').change(function () { var
$(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>
勘探名称
不活跃的
公司0
|
|
公司1
|
|
等等
有没有关于如何改进并使其工作的建议?也许我需要更多的id标签而不是类
谢谢你的帮助和建议
$(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;
}
}
一些打字错误修复。。。我使用text()属性而不是html()。小提琴:试试这个。将“.propsect_td”更改为“.prospect_td”,“IndexOf”更改为“IndexOf”,并替换了obj的类型!=”未定义的“对象长度”!=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;
}
}
prospectName.toLowerCase().IndexOf(…
请花点时间观察开发人员控制台中的错误。@斜视一下,我得到的是prospectName未定义。这正是它所说的吗?您的IndexOf
应该是IndexOf
。在.find()
中,您有“propsect\u td”
,而不是“前景"
…这是您的代码。它比需要的要详细得多。您选择的函数名hideText
令人困惑,因为当它为true
时,您显示的是文本,所以我更改了它和其他一些内容。它在fiddle中工作,请重新检查->您的事件是更改的,如果您想立即更改,请使用keyup。…我会将其更改为keyup,因为我确实需要即时检查。@nevermind:您应该详细解释您更改的内容。如果OP一开始没有看到拼写错误,他可能不会发现更正。