Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果行数据具有'&';文中_Javascript_Html_Html Table - Fatal编程技术网

Javascript 如果行数据具有'&';文中

Javascript 如果行数据具有'&';文中,javascript,html,html-table,Javascript,Html,Html Table,我有一个html表格,有7列6000多行 我在网上搜索JavaScript代码,并对html表的搜索和过滤功能进行了一些调整,现在一切正常 唯一的问题是字符“&”。无论数据中是否存在此“&”,它都不会搜索“&” 例如,示例数据在“客户名称”列中有“Koniglich&Essen”。所以,当我开始键入时,它将显示结果,直到我键入“Koniglich&”。在我输入“E…”后,结果消失 下面是示例页面 下面是我用来过滤数据的JavaScript代码 <script> function m

我有一个html表格,有7列6000多行

我在网上搜索JavaScript代码,并对html表的搜索和过滤功能进行了一些调整,现在一切正常

唯一的问题是字符“&”。无论数据中是否存在此“&”,它都不会搜索“&”

例如,示例数据在“客户名称”列中有“Koniglich&Essen”。所以,当我开始键入时,它将显示结果,直到我键入“Koniglich&”。在我输入“E…”后,结果消失

下面是示例页面

下面是我用来过滤数据的JavaScript代码

<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)