你好,我遇到了JS错误:
Uncaught SyntaxError: Unexpected identifier
here
<script type="text/javascript">
var cur_level = 1;
var ids_arr = new Array(<?php echo $max_level?>);
var im_here = new Array(<?php echo $max_level?>);
ids_arr[0] = 1;
im_here[0] = "|";
function displayData(id, level, used, title)
{
if(used){
choice = document.getElementById('divv'+id).innerHTML;
document.getElementById('test_div').innerHTML = choice;
} else {
document.getElementById('test_div').innerHTML = ' No lerning paths to show.';
updateLinksDiv(id, level, title);
}
}
function updateLinksDiv(id, level, title)
{
var links_div_info = document.getElementById('links_parent_'+id);
var tmpHTML = '';
var here = '';
for(i=0;i<level;i++){
here+= '->'+im_here[i];
links_div_info = document.getElementById('links_parent_'+ids_arr[i]);
tmpHTML += '<div id="divl_'+links_div_info.id+'">'+links_div_info.innerHTML+'</div>';
}
links_div_info = document.getElementById('links_parent_'+id);
tmpHTML += '<div id="divl_'+links_div_info.id+'">'+links_div_info.innerHTML+'</div>';
document.getElementById('links').innerHTML = tmpHTML;
ids_arr[i] = id;
im_here[i] = title;
}
</script>
<script type="text/javascript">
window.onload=updateLinksDiv(1 , 0 , "|" ) ;
</script>
这些函数应该创建一个“展开”的功能,可以逐级打开。一切正常,直到我添加了“标题”,然后开始出现错误。错误指向最后一个
标签,但我就是找不到错误所在...
我尝试像这样调用 displayData:
onclick="displayData('.$cat->id.','.$cat->level.',0,'.$cat->title.')"
有什么建议是我没有看到的吗?
谢谢
onxxx
属性。相反,在页面加载后将事件绑定到元素上 - 这被称为非侵入式JavaScript。同样地,使用innerHtml
是一个XSS注入漏洞的食谱。我强烈建议使用jQuery或类似的库。 - phihag