我正在开发一个 Drupal 网站,并尝试根据 HTML 元素的现有类应用 Twig 文件中的特定类。具体来说,我想将“Card-label”类应用于具有“views-fieldviews-field-title”类的卡片元素的标题。尽管多次尝试,我还是无法达到预期的结果。
这是我的 Twig 文件的摘录:
<div class="Cardlist">
{% if title %}
<h3>{{ title }}</h3>
{% endif %}
{% for row in rows %}
{%
set row_classes = [
default_row_class ? 'views-row',
]
%}
<div class="Card">
<div{{row.attributes.addClass(row_classes)}}>
{{ row.content }}
</div>
{% endfor %}
</div>
</div>
我尝试使用 Twig 中的条件添加“卡片标签”类,以确保它仅应用于具有“视图字段视图字段标题”类的元素。我的尝试看起来像这样:
{% if 'views-field views-field-title' in row.content['#row'].attributes.class %}
<div class="Card-label">
{{ title }}
</div>
{% else %}
{{ title }}
{% endif %}
以下是当前 HTML 元素的示例:
<div class="views-field views-field-title">
<span class="field-content">My Title</span>
</div>
这是我希望 HTML 元素在应用 Twig 类后的外观:
<div class="Card">
<div class="Card-label">
<h3>My Title</h3>
</div>
</div>
Drupal 版本:10
如果
row.content['#row'].attributes.class
确实是一个实际数组,那么您需要将 if
- 语句更改为以下内容:
{% if 'views-field' in row.content['#row'].attributes.class and 'views-field-title' in row.content['#row'].attributes.class %}
Both "views-field" and "views-field-title" are inside the array
{% endif %}