每次从下拉菜单中进行选择时,都会从facebook中提取特定数据并将其添加到不同的div中。我试图在每次做出不同的选择时更新div的内容,但是在那一刻,内容只是在初始内容之后附加。
这是根据选择获取数据并根据返回的数据创建列表的代码
<script>
city = document.getElementById("citySelection")
city.addEventListener("change", function() {
var selected = this.value;
var eventsList = document.getElementById("events");
if (selected == "None") {
eventsList.style.display = "none";
} else {
eventsList.style.display = "block";
};
if (selected == 'Bristol') {
getBristolEvents();
};
if (selected == 'Leeds') {
getLeedsEvents();
};
if (selected == 'Manchester') {
getManchesterEvents();
};
if (selected == 'Newcastle') {
getNewcastleEvents();
};
});
function createList(response, listId) {
var list = document.createElement('UL')
for (var i = 0; i < 10; i++) {
var events = response.data[i].name
var node = document.createElement('LI');
var textNode = document.createTextNode(events);
node.appendChild(textNode);
list.appendChild(node)
listId.appendChild(list);
}};
</script
这是目标div:
<html>
<div id="events" style="display: none">
<div id="eventsDiv" style="display: block">
<div id="eventsListOne">
<h3 id='headerOne'></h3>
</div>
<div id="eventsListTwo">
<h3 id='headerTwo'></h3>
</div>
<div id="eventsListThree">
<h3 id='headerThree'></h3>
</div>
</div>
</div>
</div>
</html>
每次调用从facebook获取数据的函数时,我都尝试重置div的innerHtml:
<script>
function getEventsThree(fbUrl, title) {
var listId = document.getElementById('eventsListThree');
var headerThree = document.getElementById('headerThree');
listId.innerHtml = "";
headerThree.append(title)
FB.api(
fbUrl,
'GET', {
access_token
},
function(response) {
listId.innerHtml = createList(response, listId)
}
)};
</script>
但是,仍然没有重置div的内容。
我看过其他回复,但他们都使用了我没有使用的jquery。
有人可以建议解决此问题的最佳方法吗?感谢。
答案 0 :(得分:0)
我认为你的轩尼诗方法很好。生成内部内容,然后设置.innerHTML
。
至少有一个问题,也许是唯一的问题,似乎是您将.innerHTML
设置为createList
的返回值,但该函数不会返回任何内容。