簡體   English   中英

在JavaScript函數之間傳遞Json值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM