TL; DR - >我希望在一个itemscope中嵌套一个itemprop,以实际应用于不同的itemcope。我该怎么做?
这是我所拥有的代码的要点(我已经删除了页面上的类和其他无关元素以专注于重要的事项):
<!-- 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>
基本上,我有一个带有儿童aggregateRating的产品itemcope。在aggregateRating范围内,我有类似“ratingValue”和“reviewCount”的东西,我想附加到那个,但是还有一个“name”值,我希望附加到Product(不是aggregateRating,也可以有一个“name” “价值”。
使用我使用的第一块代码,谷歌说我的产品缺少一个名称,因为该名称正在应用于aggregateRating;对于第二个,名称现在应用于aggregateRating和Product。这不是最糟糕的事情,但我希望它只是附加到aggregateRating;你知道怎么解决这个问题而不搞乱当前的标记组织吗?
答案 0 :(得分:6)
假设你的意思是你只希望它只附加到产品上,按照你的倒数第二段,并且不仅按照你的最后一段附加了aggregateRating,那么我能得到的最好的是
<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项目。但是,它会创建一个没有类型的第三个项目。