【发布时间】:2015-12-09 04:54:15
【问题描述】:
不知道为什么会发生这种情况,但我用于更改显示的过去事件数量的 javascript 无法正常工作。只有第一个选择选项 (3) 和最后一个选项 (all) 似乎触发了 onchange 事件。请查看我的代码,如果我做错了什么,请告诉我,我是 js 的新手。我也会在我的演示网站上发布它,直到我接受答案:http://aaron-schpitzer.ca/en/events
html(php)
echo '<tr><td><table class="invisible"><tr><td>Number Shown: <select id="select" onchange="changePast()"><option value="3">3</option><option value="10">10</option><option value="20">20</option><option value="'.count($pastEvents).'">All</option></select></td></tr></table></td></tr>';
js
<script>
var pastEvents = <?php echo json_encode($pastEvents); ?>;
function changePast(){
var e = document.getElementById("select")
var selected = e.options[e.selectedIndex].value;
var table = document.getElementById("past_events");
if(table!=null){
var innerhtml = "";
for(i=0;i<selected;i++){
innerhtml+='<table class="invisible"><tr><td><img src="/'+pastEvents[i]["banner"]+'" alt="Event Banner"></td></tr><tr><td>'+pastEvents[i]["name"]+'</td></tr></table>';
}
table.innerHTML = innerhtml;
}
}
【问题讨论】:
-
我想我已经弄明白了,只有 5 个过去的测试事件,所以如果我选择一个数字,我需要检查该值是否大于对象数,如果是,那么我需要使用 object.length
标签: javascript html events javascript-events