Qualtrics表条件格式

时间:2017-08-15 15:23:27

标签: javascript html css qualtrics

在我的Qualtrics调查中,一个问题(描述性文本)是一个双列表,其中填充了两个不同国家的随机选择的嵌入数据(下面的v2elsuffrage_ord变量)。这两个变量都是0-4。我想要做的是有条件地格式化这些细胞,所以无论哪个得分更大(得分1或得分2),该细胞都是绿色的。

这是我桌子的一个例子:

<table class="UserTable">
    <colgroup>
        <col id="score1" />
        <col id="score2" />
    </colgroup>
    <tbody>
        <tr>
            <th>Country A</th>
            <th>Country B</th>
        </tr>
        <tr>
            <td>${e://Field/v2elsuffrage_ord}</td>
            <td>${e://Field/v2elsuffrage2_ord}</td>
        </tr>
    </tbody>
</table>

这在Qualtrics中甚至是可能的吗?我在HTML中找到了一个普通条件格式的例子,并试图为Qualtrics修改它,但它没有用。这就是我的Javascript:

Qualtrics.SurveyEngine.addOnload(function()
{

    var score1 = $(this).text();
    var score2 = $(this).text();

    if (score1 > score2) {
        $(this).addClass('more1');
    }
    else if (score1 < score2) {
        $(this).addClass('more2');
    }
    else if (score1 = score2) {
        $(this).addClass('same');
    }
});

然后对于CSS,我在Look&amp; amp;的Advanced部分下添加了这段代码。感觉(现在随机选择的颜色,看看它是否有效):

.more1 {
    background-color: #0f0;
}

.more2 {
    background-color: #0c0;
}

.same {
    background-color: #060;
}

我知道我确实做错了,但我从来没有真正使用过HTML / CSS(就像我说的那样,我甚至都不知道这是否可行)。任何想法或指导都会很棒,即使它只是一种解决方法。

1 个答案:

答案 0 :(得分:2)

您的JavaScript中有很多错误:

  1. $(这)错了
  2. text()是一个jQuery函数,而不是prototypejs或本机JavaScript函数
  3. score1 = score2是无效比较
  4. addClass不是有效的功能
  5. 此外,样式分配逻辑和CSS没有意义。你只需要一种风格。既然如此,那么将样式添加到元素中会更简单。无需单独的CSS。

    试试这个JavaScript ......

    Qualtrics.SurveyEngine.addOnload(function()
    {
    
    var score1 = parseInt("${e://Field/v2elsuffrage_ord}");
    var score2 = parseInt("${e://Field/v2elsuffrage2_ord}");
    
    if (score1 > score2) {
        $('score1').style.backgroundColor = "#0f0";
    }
    else if (score1 < score2) {
        $('score2').style.backgroundColor = "#0f0";
    }
    });