2011-11-16 109 views
0

我有一個javascript數組,我想用jstl爲它們迭代它們並顯示輸出。我不能在jQuery中讀取javascript數組。我試過以下將javascript數組傳遞給jquery

specPhoneArray = $(specPhoneArray); & 
specPhoneArray = ${specPhoneArray}; 
this.specPhoneArray = $(specPhoneArray); 

任何幫助表示讚賞。

+0

jQuery的可以用來在JavaScript中交織在一起,它*是* javascript後。我不確定你想要完成什麼。也許一個jsfiddle是爲了? – switz

+0

JSTL用於Java變量;它完全與JavaScript無關。如果您有權訪問服務器端的變量,請在此處執行此操作。如果你不這樣做,那麼你需要用jQuery來構建DOM元素。但你如何創建JavaScript數組? –

+0

我有一個液滴,它給了我一個JSONArray的手機,我用JSONArray創建了每個功能的新子集。我正在過濾一個數組中的手機功能,我想要顯示它。 – cstephen

回答

0

你不能這樣做與JSTL,但你可以通過停留在JavaScript世界來完成它。首先創建一個模板,並將其添加到您的網頁:

<script id="phone-tmpl" type="text/html"> 
    {name} 
    <input type="hidden" name="phoneID" value="{id}"/> 
</script> 

然後在JavaScript中加入少許模板幫手:

function t(s,d) { 
    for (var p in d) { 
    s = s.replace(new RegExp('{'+p+'}','g'), d[p]); 
    } 
    return s; 
} 

,然後你可以做(​​假設你正在使用jQuery):

var phoneTmpl = $('#phone-tmpl').html(), 
    html = ""; 

for (var i = 0, l = specPhone.length; i < l; i++) { 
    html += t(phoneTmpl, specPhone[i]); 
} 

// do something with html 
$('body').append(html); 

您還可以檢查此演示:http://jsfiddle.net/d5jaY/

+0

我個人不喜歡將html元素作爲字符串的想法,然後將它們附加到div/html .. – cstephen

+0

這太糟糕了,因爲這正成爲處理客戶端模板的標準方式。所有其他常見的js框架以類似的方式處理它... –

+0

對於有人會調試代碼很困難,這就是爲什麼我不喜歡在JavaScript內部使用html元素作爲字符串的想法。在我的情況下,html元素看起來像var html =「 cstephen