使用 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 更有效的方法来获取多个元标记值?这是我考虑过的一些替代解决方案...
- 我可以通过添加 head 来限制范围:$('meta[property=ad_hash]', 'head').attr('content')
- 我可以将所有值存储在一个 JSON 字符串中,但是我 运行 从元标记中读取它时遇到了一些问题。
- 有没有办法使用 $('meta') 来存储与变量的匹配,然后访问其中的各个标签?
使用 JSON 字符串在大小方面会更有效,但实际上您只是在解析 XML 数据。您可以遍历 meta
标记,以减少您从 DOM 中 select 的频率,并使您的代码更加动态:
var params = {};
$('head meta[property][content]').each(function() {
params[$(this).attr('property')] = $(this).attr('content');
});
使用 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 更有效的方法来获取多个元标记值?这是我考虑过的一些替代解决方案...
- 我可以通过添加 head 来限制范围:$('meta[property=ad_hash]', 'head').attr('content')
- 我可以将所有值存储在一个 JSON 字符串中,但是我 运行 从元标记中读取它时遇到了一些问题。
- 有没有办法使用 $('meta') 来存储与变量的匹配,然后访问其中的各个标签?
使用 JSON 字符串在大小方面会更有效,但实际上您只是在解析 XML 数据。您可以遍历 meta
标记,以减少您从 DOM 中 select 的频率,并使您的代码更加动态:
var params = {};
$('head meta[property][content]').each(function() {
params[$(this).attr('property')] = $(this).attr('content');
});