我正在制作这个原型脚本:
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)然后我通过单词计数(var wanted_count)执行切换到'output'var。在最后我替换原始元素(其中包括一个问题:仅使用$$(类)使仅考虑和替换第一个元素内容对所有其他人。
我也需要通过id识别元素,我想......我在评论函数中添加了(收集),但我不知道如何加入我的目标..
到现在为止我只得到了这个结果:
这是第一堂课的内容 div ... (cut)
这是firts'class'div的内容...... 这是第一个“阶级”的内容...
虽然我想得到:
这是第一个“课堂”的内容 DIV ...
这是第二个“阶级”div的内容...
这是第三个“阶级”div的内容......
感谢你们,感谢这个伟大的社区整体
答案 0 :(得分:0)
我相信你正在混合使用一个元素集合来处理单个元素。自从我进入Prototype以来已经有一段时间了,但你是否尝试过非常独立的工作,所以输出的范围是你要替换的元素:
function removing () {
var data, output, wanted_count = 10;
$$('.class').each(function(element){
output = cutHtmlString(element.innerHTML, wanted_count);
element.replace(output + '...');
});
}
答案 1 :(得分:0)
Invoke
才有效。您需要使用each
。
另外,我认为您要使用update
而不是replace
。
试试这个。
function removing() {
$$('.class').each(function(el){
var output = cutHtmlString(el.innerHTML, 10);
el.update(output + '...');
});
}