【问题标题】:How to format Qualtrics embedded data on a per-input basis?如何在每个输入的基础上格式化 Qualtrics 嵌入数据?
【发布时间】:2015-09-05 17:10:30
【问题描述】:

我想要完成的是抓取一些嵌入数据,并以特定方式(颜色、位置等)输出。比如我们把嵌入的数据作为<div class="previous">$e://Field/DTBEG}</div>放在问题文本中,但是我想抓取它并直接插入到输入字段下面(我认为我们不能直接在Qualtrics中做,所以需要自定义JS在这里)。

所以在问题文本中,我有:

<div>1a. Reporting Period: Beginning</div>
<div class="previous date">${e://Field/DTBEG}</div>

DTBEG 数据可能为空,也可能是代表日期的 5/6 位。调查的标题有:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
    var $j = jQuery.noConflict();
</script>

as explained in their documentation.

然后在 jQuery 中,我可以使用 $j(".previous") 访问该字段的先前数据,但问题是 Qualtrics 实际上在我的问题中放置了 2 个(或更多,取决于问题类型)&lt;div class="previous date"&gt;&lt;/div&gt; 字段。现在这非常具有误导性,因为每个嵌入的数据都可能有额外的“以前的”div,所以我无法确定嵌入的数据是否只是空的,或者这是一个重复的字段。

...
<h2 class="noStyle">
    <label class="QuestionText BorderColor">
        <div>1b. Reporting Period: End</div>
        <div class="previous date">33113</div> <!-- first instance of the div, this seems to be visible -->
    </label>
</h2>
<fieldset>
    <div class="QuestionBody">
        <table class="ChoiceStructure" border="0" cellpadding="0" cellspacing="0" summary=" 1b.&amp;nbsp; Reporting Period:&amp;nbsp; End&amp;nbsp; 33113 " style="width:710px">
        <caption class="QuestionText BorderColor">
            <div>1b. Reporting Period: End</div>
            <div class="previous date">33113</div> <!-- second instance of the div, this seems to be hidden -->
        </caption>
        ...
    </div>
</fieldset
...

有没有更好的方法来完成我想做的事情?我可以编写自己的 JS 来执行此操作,但到目前为止,因为 Qualtrics 的 HTML 输出并不完全符合我的预期,我遇到了问题。

【问题讨论】:

    标签: jquery html prototypejs qualtrics


    【解决方案1】:

    在必要的问题中尝试以下 javascript:

    Qualtrics.SurveyEngine.addOnload(function()
    {
    
    $$('.QuestionBody')[0].insert($$('.previous')[0]);
    
    });
    

    与其使用 jQuery 并不得不去麻烦,这使用了 PrototypeJS 中的烘焙。选择器

    $$('.class')
    

    将返回一个元素数组。由于您的“上一个”类只有并且应该只有 1 个元素,因此它是数组中的第一个也是唯一一个元素。为“.QuestionBody”数组选择的数字需要根据页面上的问题数量以及它们的显示位置进行调整。

    同样值得注意的是

    $('idName') 
    

    可用于选择有id的元素,不返回数组。

    【讨论】:

    • 在你的问题中添加一个prototypejs标签也是值得的,因为它已经融入了Qualtrics
    • 如果它有效,我很感激你将我的答案标记为接受未来寻求信息的人
    • 这最终对我来说不太有效,因为我正在获取嵌入式数据并根据其格式和数据类型在 jQuery 中手动移动它。事实证明,“日期”格式是唯一插入重复数据的格式,所以一旦我写了一个解决方法,其他一切在 jQ 中都非常简单。
    • 啊,我觉得有道理!很高兴您找到了解决方案!
    猜你喜欢
    • 2018-10-23
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 2017-09-05
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多