我正在根据该字段的内容向字段添加一个类,因此我可以根据内容对每个字段设置不同的样式。想象一下从1到10的汉堡评级...我想用一张图片替换评级,用两张图片替换等等......等等。
为此,我需要每个字段类来反映字段内容。这是我正在使用的代码:
Drupal.behaviors.burgerRating = {
attach: function (context, settings) {
var burgerRating = $('.field-name-field-rating2').text();
$('.field-name-field-rating2').addClass(burgerRating);
}
}
这将该字段的内容输出为我可以设置的类。 但是,在博客视图中,例如页面上有三个帖子,当我想要每个字段实例的每个特定字段内容时,此代码会将所有三个类添加到所有三个字段。
我得到的是:
<div class="field-name-field-rating2 rating-1 rating-5 rating-8">
<div class="field-name-field-rating2 rating-1 rating-5 rating-8">
<div class="field-name-field-rating2 rating-1 rating-5 rating-8">
而不是:
<div class="field-name-field-rating2 rating-1">
<div class="field-name-field-rating2 rating-5">
<div class="field-name-field-rating2 rating-8">
我认为我需要使用.this()或.each()才能使用它,但是我无法让它工作。
有任何帮助吗?感谢。
答案 0 :(得分:0)
为什么要在Javascript中这样做? 你可以:
hook_field_formatter_info
:https://api.drupal.org/api/drupal/modules%21field%21field.api.php/function/hook_field_formatter_info/7 hook_field_formatter_view
:https://api.drupal.org/api/drupal/modules%21field%21field.api.php/function/hook_field_formatter_view/7 格式化程序是字段的显示方式。它取决于字段的类型(文本,数字, taxonomy_reference ,...)。 如果您的评分字段是文本字段,则必须为文本字段创建格式化程序。 创建后,所有文本字段都可以使用此格式化程序。
您必须在内容类型的显示标签 将此格式化工具与您的字段相关联。
这是一个了不起的系统,您也可以为格式化程序添加设置表单(hook_field_formatter_settings_form
)