我正在尝试将 javascript 对象存储在列表元素中,这似乎工作正常,直到我尝试从另一个函数访问该数据。
这是我的 jsfiddle:http: //jsfiddle.net/RaUxB/2/
这是我的javascript:
var showData = function (li) {
// get the stored data
var d = $.data(li, 'testData');
if (typeof(d) === 'undefined')
alert ('showData() - data is undefined!');
else
alert ('showData() - number: [' + d.number+ '], text: [' + d.text + ']');
};
var doStuff = function () {
$('#list').children().each(function(ix, item) {
showData(item);
});
};
$(document).ready(function() {
// create a list item
var li = $('<li>List Item 1 - Click Me!</li>').appendTo('#list');
// store some data in it
$.data(li, 'testData', {number:1, text:'test 1'});
// show the data - this works!!!
showData(li);
// assign a click handler that will also show the data
$(li).click(function() {
showData(this); // this doesn't work!!!
});
});
这是我的 HTML:
<ul id="list"></ul>
<p><a href="#" onclick="javascript:doStuff();return(false);">Try This Way</a></p>
</p>