Javascript 函数查找td元素中不工作的文本

Javascript 函数查找td元素中不工作的文本,javascript,jquery,html,Javascript,Jquery,Html,全部, 我在这里看到了几种方法,它们都是关于如何查找在表中td元素中编写的文本或html的。出于某种原因,他们似乎不为我工作。我显然做错了什么,但我不知道是什么 编辑:问题是my td中的html()始终显示为未定义。我似乎无法使用html()、text()等获取文本(如company0) 这是我的职责#searchbox是一种输入类型:文本 $(document).ready(function () { $('#searchbox').change(function () { var

全部,

我在这里看到了几种方法,它们都是关于如何查找在表中td元素中编写的文本或html的。出于某种原因,他们似乎不为我工作。我显然做错了什么,但我不知道是什么

编辑:问题是my td中的html()始终显示为未定义。我似乎无法使用html()、text()等获取文本(如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>

勘探名称
不活跃的
公司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一开始没有看到拼写错误,他可能不会发现更正。