2011-05-08 49 views
0

我做這個原型腳本工作:同一類的原型功能不同的ID元素

function removing() { 
*var ids = $$('.class').collect(function(el) { return el.id; });* //array of ids, not used by now 
var data = $$('.class').pluck('innerHTML'); 
var wanted_count = 10; 
var output = cutHtmlString(data, wanted_count); 
$$('.class').invoke('replace', output + '...'); 
} 

這個標記:

<div class="class" id="id1">content 1</div> 
<div class="class" id="id2>content 2</div> 
<div class="class" id="id3>content 3</div> 

cutHtmlString是削減HTML字符串保持標籤功能我想將它應用於每個不同的div內容。我從一般的$$(.class)創建'data'變量(通過innerHTML),然後通過將單詞count(var wanted_count)切割成'output'var來執行切割。
最後,我用新的剪切內容替換原始元素(再次用$$。class)。

除一個問題外,所有工作都很好:僅使用$$(class)使得僅僅考慮第一個元素內容,並將替換爲彼此。
我也需要通過id識別元素,我猜...由於我添加了評論功能(收集),但我不知道如何加入我的目標..

現在我只得到這個結果:

這是firts '類' 格... (切)
這是firts '階級' 的內容股利...
這是firts '類' div的內容的內容。 ..

雖然我想得到:

這是第一個「類」 div的內容...
這是第二個「類」 DIV內容...
這是第三個「類」的內容股利...

感謝球員和感謝這個偉大的社會整體

回答

0

我相信你是混合的元素的集合,正與一個單一的元素上工作。它已經有一段時間我一直在原型,但你有沒有試過很獨立工作就這麼輸出的作用域是要替換的元素:

function removing() { 
    var data, output, wanted_count = 10; 

    $$('.class').each(function(element){ 
    output = cutHtmlString(element.innerHTML, wanted_count); 
    element.replace(output + '...'); 
    }); 
} 
0

Invoke只鐵鍋,如果你的填充相同的變量每個元件。您需要使用each。 另外我想你想使用update而不是replace

試試這個。

function removing() { 
    $$('.class').each(function(el){ 
    var output = cutHtmlString(el.innerHTML, 10); 
    el.update(output + '...'); 
    }); 
} 
相關問題