我想让此代码与我的解析器一起使用。
(fset #'afs-next-error #'next-error)
(fset #'afs-previous-error #'previous-error)
(with-eval-after-load "tex"
(progn
(define-key TeX-mode-map (kbd "M-g n") #'afs-next-error)
(define-key TeX-mode-map (kbd "M-g p") #'afs-previous-error)))
解析器:
function search() {
var input, filter, table, tr, td, i;
input = document.getElementById("input");
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";
}
}
}
html:
function load() {
data = data[0];
var uno = document.getElementById('data');
for(var i = 0; i < data.list.length; i++)
{
var content = uno.innerHTML;
content += "<div class='grid-item'><div class='inside' id='item" + i + "'><h2 id='contents" + i + "' class='pl-content-title' href=./index.html#" + data.list[i].hash + ">" + data.list[i].title + "</h2><div class='collapsing'><br><table id='mytable'>";
for(var e = 0; e < data.list[i].content.length; e++)
{
content += "<tr><td class='tabledata'><a class='pl-content' href=./index.html#" + data.list[i].content[e].hash + ">" + data.list[i].content[e].title + "</a></td></tr>";
}
uno.innerHTML = content + "</table></div></div></div>";
}
如果我将表直接复制到html中,则可以使用,但是如果表是由我的解析器脚本构建的,则不能使用。 来自浏览器控制台的错误消息是:
<input class="pl-search" type="text" placeholder="Suche" id="input" onkeyup="search()">
对此有何想法?
答案 0 :(得分:1)
<table id='mytable'>
应该是
<table id='myTable'>
此错字导致table = document.getElementById("myTable");
返回null。
在这样的静态示例中,您只需修正错字即可。
在编写动态函数时,请使用后备功能防止错误
tr = table ? table.getElementsByTagName("tr") : null;
评估tr
时,依次类推for
。 (声明k)
for (i = 0, k= tr ? tr.length : 0; i < k; i++)