3

TL;DR --> 我希望嵌套在一个 itemscope 中的 itemprop 实际应用于不同的 itemscope。 我怎么做?

这是我拥有的代码的要点(我已经删除了页面上的类和其他无关元素以专注于重要的内容):

<!-- CODE I HAD -->

<div itemscope itemtype="http://schema.org/Product">
  <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <span itemprop="ratingValue">79</span>
    <h1 itemprop="name">Someproductsoandso</h1>
    <span itemprop="reviewCount">830</span>
  </div>
</div>

<!-- CODE I NOW HAVE -->

<div itemscope itemtype="http://schema.org/Product" itemref="productMicrodata">
  <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <span itemprop="ratingValue">79</span>
    <h1 itemprop="name" id="productMicrodata">Someproductsoandso</h1>
    <span itemprop="reviewCount">830</span>
  </div>
</div>

基本上,我有一个带有子聚合评级的产品 itemscope。在该 aggregateRating 范围内,我有我想附加到它的“ratingValue”和“reviewCount”之类的东西,但还有一个我想附加到产品的“名称”值(不是聚合评级,它也可以有一个“名称“ 价值)。

在我使用的第一段代码中,谷歌说我的产品缺少名称,因为该名称被应用于聚合评级;对于第二个,该名称现在同时应用于 aggregateRating 和 Product。这不是最糟糕的事情,但我希望它只是附加到聚合评级;你知道如何在不破坏当前标记组织的情况下解决这个问题吗?

4

1 回答 1

6

假设您的意思是您希望它只附加到产品上,根据您的倒数第二段,并且不仅根据您的最后一段附加聚合评级,那么我能想到的最好的就是

<div itemscope itemtype="http://schema.org/Product" itemref="productMicrodata">
  <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <span itemprop="ratingValue">79</span>
    <h1 itemscope><span itemprop="name" id="productMicrodata">Someproductsoandso</span></h1>
    <span itemprop="reviewCount">830</span>
  </div>
</div>

h1 上的 itemscope 对 aggregateRating 项隐藏了 h1 的子项,因此 name 属性将仅通过 productMicrodata itemref 附加到 Product 项。但是,它确实创建了第三个没有类型的项目。

于 2013-05-23T23:16:41.917 回答