Javascript 如果行数据具有'&';文中
我有一个html表格,有7列6000多行 我在网上搜索JavaScript代码,并对html表的搜索和过滤功能进行了一些调整,现在一切正常 唯一的问题是字符“&”。无论数据中是否存在此“&”,它都不会搜索“&” 例如,示例数据在“客户名称”列中有“Koniglich&Essen”。所以,当我开始键入时,它将显示结果,直到我键入“Koniglich&”。在我输入“E…”后,结果消失 下面是示例页面 下面是我用来过滤数据的JavaScript代码Javascript 如果行数据具有'&';文中,javascript,html,html-table,Javascript,Html,Html Table,我有一个html表格,有7列6000多行 我在网上搜索JavaScript代码,并对html表的搜索和过滤功能进行了一些调整,现在一切正常 唯一的问题是字符“&”。无论数据中是否存在此“&”,它都不会搜索“&” 例如,示例数据在“客户名称”列中有“Koniglich&Essen”。所以,当我开始键入时,它将显示结果,直到我键入“Koniglich&”。在我输入“E…”后,结果消失 下面是示例页面 下面是我用来过滤数据的JavaScript代码 <script> function m
<script>
function myFunction() {
var input, filter, table, tr, td, i,
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
</script>
函数myFunction(){
var输入、过滤器、表格、tr、td、i、,
输入=document.getElementById(“myInput”);
filter=input.value.toUpperCase();
table=document.getElementById(“myTable”);
tr=table.getElementsByTagName(“tr”);
对于(i=0;i-1){
tr[i].style.display=“”;
}否则{
tr[i].style.display=“无”;
}
}
}
}
您正在检查innerHTML
,因此&
将表示为&代码>当浏览器将其转换为HTML时
一个console.log(td.innerHTML)
会突出显示这一点
您最好检查textContent
您应该检查每个表单元格的textContent
,而不是将特殊字符转义为HTML实体的innerHTML
<代码>&
将更改为&代码>
更改:
if (td.innerHTML.toUpperCase().indexOf(filter) > -1)
到
工作演示:这将起作用(使用.textContent
):Hello@hev1请将此作为答案发布。您的链接帮助我解决了这个问题。非常感谢。我对javascript一无所知。这是我第一次处理它,所以我不知道如何以及在哪里实现textContent
。我确实尝试了如图所示的textValue
,但是,这并没有过滤任何东西!连一排都没有。代码没有响应。你能用textContent
修改我的代码并给我看吗?@pratekvish没问题。(我的用户名是“hev1”。)
if (td.textContent.toUpperCase().indexOf(filter) > -1)