[英]Passing Json values between javascript functions
我正在獲取JSon數據,正在使用dom來顯示數據,我想為每個顯示的搜索結果嵌入一個鏈接,當單擊該鏈接時,該數據實例將傳遞給另一個塊並顯示該結果
我的HTML代碼是
<html>
<body>
<div id:block 1 >
<div id:block 2>
<div id:block 3>
</body>
我的Javascript函數是
function addBooks(data) { // the data is a list of JSON objects
var listdiv = document.createElement('li');
listdiv.setAttribute('id', 'gBookListDiv');
listdiv.innerHTML = ("Books Found:");
parent.appendChild(listdiv);
for(i = 0; i < data.length; i++) {
//create each list item
var listItem = document.createElement('li');
var link = document.createElement('a');
listItem.setAttribute('id', 'gBookListItem');
parent.appendChild(listItem);
link.setAttribute('href', '#');
link.setAttribute('onclick', 'displayBook(data[i])');
listItem.appendChild(link);
}
}
function displayBook(bookData) {
alert(bookData.title);
if(document.getElementById("block2").style.display == "block") {
document.getElementById("block2").style.display = "none";
document.getElementById("block3").style.display = "block";
}
var headerTitle = document.getElementById('book-profile-title-header');
headerTitle.innerHTML = bookData.title;
var title = document.getElementById('book-profile-pic');
headerTitle.innerHTML = bookData.title;
}
由於某些原因,我無法將數據實例傳遞給displayBook函數。
這是我在chrome上遇到的錯誤
未被捕獲的ReferenceError:未定義數據
問題出在以下代碼中:
link.setAttribute('onclick', 'displayBook(data[i])');
處理程序在全局上下文中運行,因此未在其中定義data
。 改用實函數:
(function(i) {
link.onclick = function() { displayBook(data[i]); }
})(i);
圍繞它的自執行功能有必要在每次迭代中創建一個單獨的i
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.