使用 jQuery 获取多个元内容值?

Get multiple meta content values using jQuery?

使用 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 更有效的方法来获取多个元标记值?这是我考虑过的一些替代解决方案...

使用 JSON 字符串在大小方面会更有效,但实际上您只是在解析 XML 数据。您可以遍历 meta 标记,以减少您从 DOM 中 select 的频率,并使您的代码更加动态:

var params = {};
$('head meta[property][content]').each(function() {
    params[$(this).attr('property')] = $(this).attr('content');
});