如何在jquery中正确缓存DOM元素?
我在从命名空间变量访问缓存的DOM元素时遇到了一些麻烦。 我的FeedManager配置变量是这样的:
var FeedManager = { config : { $feedContainer : $('#feedContainer'), feedUrl : 'http://rss......', feedLimit : 10 },....
这里$ feedContainer是html中的ul元素。 我想添加从feed构建的li元素。 我在FeedManager对象中有一个函数init()。 但不知怎的,它无法添加子元素。
init: function(){ var feed = new google.feeds.Feed(FeedManager.config.feedUrl); ...... ...... // this is not working FeedManager.config.$feedContainer.append(li);
但如果在init()函数内部,我再次获得feedContainer元素,它的工作原理!
var feedContainer = $('#feedContainer'); feedContainer.append(li);
可能是什么问题? 以及如何在配置对象中使用初始化的缓存dom元素。
您需要确保已加载$('#feedContainer')
。
一个类似的例子:
您的#feedContainer元素是否存在于HTML中,或者稍后会被提取? 如果它被提取的时间晚于你无法缓存元素,那么你必须只使用像feedContainer这样的选择器字符串:’#feedContainer’`
在您的FeedManager对象中,然后使用类似的东西
$(FeedManager.config.feedContainer).append(li);
如果它存在于HTML中,那么请确保在DOM准备好后定义FeedManager对象,即。 里面的
$(document).ready(function () { // ... });
或$(function () { ... });