在JavaScript函数之间传递JSON值
Passing JSON values between JavaScript functions
我正在获取JSON数据,我正在使用dom来显示数据,我想嵌入到显示的每个搜索结果的链接,当单击该链接时,该链接会将该数据实例传递到另一个<div>
块并显示该结果。
我的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 上遇到的错误
未捕获引用错误:数据未定义
问题在于此代码:
link.setAttribute('onclick', 'displayBook(data[i])');
处理程序在全局上下文中运行,因此没有在那里定义data
。使用实际函数:
(function(i) {
link.onclick = function() { displayBook(data[i]); }
})(i);
围绕它的自执行函数需要在每次迭代中创建一个单独的i
。
相关文章:
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- 如何通过jQuery Ajax在HTML和PHP之间来回传输json字符串
- Postgresql JSON 键在字母之间显示下划线
- html页面之间传递的JSON数据
- 在JavaScript函数之间传递JSON值
- 为什么 JSON 中的对象之间有逗号
- 使用 JSON 在 python 和 javascript 之间传递数据
- 在 JSON/View in onPreResponse in happy.js 之间切换
- AngularJS检查下载的json是否在工作副本之间有差异
- 数据类型 jsonp 和 JSON 之间的区别
- 循环遍历 JSON,在对象之间插入键/值
- JSON和Javascript数组之间的“交互”(和语法)
- Express.js 中 res.send 和 res.json 之间的区别
- 如何转义JS和JSON之间的双引号
- 使用 WebRTC 在浏览器之间传输 JSON
- 原型函数和 json 表示法函数之间的区别
- JSON之间,字典和对象的区别
- JSON之间的空格.stringify输出
- HTML和JSON之间交互的脚本帮助