使用jQuery获取多个元标记值的最有效方法是什么?我将一些值存储在我想通过jQuery读取的元标记中,并传递给ajax调用或基于UI进行更改。我正在处理的代码库目前有这个......
params: {
ad_hash: $('meta[property=ad_hash]').attr('content'),
ad_id: $('meta[property=ad_id]').attr('content'),
ad_advertiser_id: $('meta[property=ad_advertiser_id]').attr('content'),
ad_subcategory_id: $('meta[property=ad_subcategory_id]').attr('content'),
ad_est_firstoccur: $('meta[property=ad_est_firstoccur]').attr('content'),
ad_est_lastoccur: $('meta[property=ad_est_lastoccur]').attr('content'),
ad_firstoccur: $('meta[property=ad_firstoccur]').attr('content'),
ad_lastoccur: $('meta[property=ad_lastoccur]').attr('content'),
ad_time: $('meta[property=ad_time]').attr('content'),
ad_timestamp: $('meta[property=ad_timestamp]').attr('content'),
ad_rating: $('meta[property=ad_rating]').attr('content'),
hostname: $('meta[property=hostname]').attr('content'),
user_clientip: $('meta[property=user_clientip]').attr('content'),
user_searchterm: $('meta[property=user_searchterm]').attr('content'),
user_voted: $('meta[property=user_voted]').attr('content'),
trans_recentlyaired: $('meta[property=trans_recentlyaired]').attr('content'),
trans_lastaired: $('meta[property=trans_lastaired]').attr('content'),
trans_on: $('meta[property=trans_on]').attr('content'),
trans_during: $('meta[property=trans_during]').attr('content'),
trans_tobeaired: $('meta[property=trans_tobeaired]').attr('content')
},
是否有更有效的方法来获取多个元标记值而不是多次访问dom?以下是我考虑的一些替代解决方案......
答案 0 :(得分:4)
使用JSON字符串在大小方面会更有效,但实际上您只是解析XML数据。您可以遍历meta
代码,以减少从DOM中选择的频率,并使代码更具动态性:
var params = {};
$('head meta[property][content]').each(function() {
params[$(this).attr('property')] = $(this).attr('content');
});