通过jQuery将类添加到Drupal字段会输出错误的循环

通过jQuery将类添加到Drupal字段会输出错误的循环,jquery,drupal-7,drupal-behaviors,Jquery,Drupal 7,Drupal Behaviors,我将根据字段的内容向字段中添加一个类,以便根据内容对每个字段进行不同的样式设置。想象一个汉堡的等级从1到10…我想用一张图片代替这个等级,另一张图片代替两张…以此类推 为此,我需要每个字段类反映字段内容。以下是我正在使用的代码: Drupal.behaviors.burgerRating = { attach: function (context, settings) { var burgerRating = $('.field-name-field-rating2').text();

我将根据字段的内容向字段中添加一个类,以便根据内容对每个字段进行不同的样式设置。想象一个汉堡的等级从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()一起工作,但我无法让它工作


有什么帮助吗?谢谢。

为什么要在Javascript中这样做? 你可以:

  • 为此字段使用特定模板,并根据字段的值执行所需操作
  • 更好,但更复杂一点:使用以下挂钩创建名为“burger_rating”的字段格式化程序:
    • hook\u field\u formatter\u info
    • hook\u field\u formatter\u view
格式化程序是字段的显示方式。它取决于字段的类型(文本、编号、分类法\参考等)。 如果评级字段是文本字段,则必须为文本字段创建格式化程序。 创建后,所有文本字段都可以使用此格式化程序

您必须将此格式化程序与内容类型的显示选项卡上的字段相关联


这是一个了不起的系统,你也可以为你的格式化程序添加设置表单(
hook\u field\u formatter\u settings\u form

顺便说一句,它是
这个
,而不是
。这个()。关于你的问题:试试
$(this).addClass(burgerRating)
$(上下文).addClass(分级)啊,是的…谢谢你指出这一点。我试过(这个)和(上下文)…都没用。谢谢你。我只是选择了jQuery路线,因为我认为它可能更容易。事实并非如此,而您的字段模板方法起了很大的作用。再次感谢。