使用javascript拉取特定页面文本,然后写入span标记

时间:2013-06-18 21:31:02

标签: javascript jquery schema.org microdata

我目前正在尝试使用针对Google SERP福利的产品评级微数据来标记我的网站产品页。

我正在使用的当前购物车软件确实有产品评级系统。它会生成以下与产品评级相关的html:

<span id="dnn_ctr783_ProductDetails_ctl02_lblAvgStars2">Average Rating: 5 Stars</span>

我可以将schema.org标识符添加到此span标记以生成以下内容:

<span id="dnn_ctr783_ProductDetails_ctl02_lblAvgStars2" itemprop="ratingValue">Average Rating: 5 Stars</span>

但是,span标记中指定的值对schema.org无效。它们要求“ratingValue”仅包含一个数字来指定评级。我的span标签有很多附加文字。

不知何故,我需要从生成的评级范围标记中提取数字“5”,并将其写入另一个span标记,该标记将具有schema.org产品标记的正确值。

关于如何实现这一目标的任何想法?谢谢!

3 个答案:

答案 0 :(得分:0)

$('[itemprop="ratingValue"]').each(function() {
   var txt = $(this).text(),
       rating = txt.replace(/\D/g, '' );
       // This will replace all the non-numeric instances

   $('<span/>', {
      'class' : 'newRatingValue',
      text    : rating
   }).appendTo('#div1');
   // Append this to a new span and remove the current span
   $(this).remove();
});

<强> Check Fiddle

答案 1 :(得分:0)

您能否提供有关如何创建和使用此范围的更多详细信息? 如果你只想要一个带有'itemprop'属性的跨度中的单个数字,那么这应该得到你的价值。

$('[itemprop="ratingValue"]').text().match(/\d/g)

答案 2 :(得分:0)

请注意,搜索引擎在抓取您的网站时不太可能执行任何类型的JavaScript,因此此技术仅适用于常规浏览器,但对搜索引擎无效。