2015-06-19 15 views
1

我試圖完成的是抓取一些嵌入的數據,並以特定的方式(顏色,位置等)輸出。例如,我們將嵌入數據作爲<div class="previous">$e://Field/DTBEG}</div>放入問題文本中,但我想抓住它並將其直接插入到輸入字段下(我認爲我們不能直接在Qualtrics中執行此操作,因此需要在此處使用自定義JS) 。如何在每個輸入的基礎上格式化Qualtrics嵌入式數據?

所以在問題文本,我有:

<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(或更多,取決於問題類型)在我的問題<div class="previous date"></div>領域。這很容易讓人誤解,因爲每個嵌入數據都可能有額外的「先前」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輸出不是我期望遇到的問題。

回答

1

嘗試在必要的問題,下面的JavaScript:

Qualtrics.SurveyEngine.addOnload(function() 
{ 

$$('.QuestionBody')[0].insert($$('.previous')[0]); 

}); 

而不是使用jQuery和不得不去那個麻煩,這裏採用的烘烤PrototypeJS。選擇器

$$('.class') 

將返回一個元素數組。既然你的「上一個」類只有1個元素,它是數組中第一個也是唯一的元素。爲「.QuestionBody」數組選擇的數字將需要根據頁面上的問題數量以及它們將顯示的位置進行調整。

還值得注意的是

$('idName') 

可用於選擇與ID的元素,並且不返回的數組。

+0

它也值得添加一個prototypejs標籤到你的問題,因爲它是烤到Qualtrics –

+0

啊,好的電話,我會試試這個 – WOUNDEDStevenJones

+0

希望它適合你。 –