我試圖存儲一個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>
根據http://api.jquery.com/jQuery.data/,它需要的元素,一個關鍵字和一個值 – Redtopia
@Redtopia:對。一個** DOM元素**,不是一個jQuery對象。 – SLaks
好的,這種變化確實有效... http://jsfiddle.net/RaUxB/3/ – Redtopia