有人可以让我知道如何使用javascript修剪下面的文字,而不是jQuery吗?这不适用于移动设备。
我有一个计算一段时间内不同日期的函数,但我需要修剪divs的最后42个字符="计算"输出。
以下在桌面上工作正常,但不会在移动设备上显示div。我测试并删除了jQuery函数,它们出现了,但我需要修剪它们。
由于
(function ($) {
$('.calculated').text(function (_,txt) {
return txt.slice(0, -42);
});
})(jQuery);
答案 0 :(得分:1)
将document.getElementsByClassName()与Element.innerHTML()一起使用,以替换div[class=calculated]
(function(event) {
var elem = document.getElementsByClassName('calculated')[0];
alert(elem.innerHTML.slice(0, -42));
elem.innerHTML = elem.innerHTML.slice(0, -42);
})();

<div class="calculated">Content longer that 42 chars.Content longer that 42 chars.Content longer that 42 chars.</div>
&#13;
要更新所有div ,使用类calculated
在document.getElementsByClassName的结果中添加for loop
,请参阅下面的代码段:
(function() {
var elements = document.getElementsByClassName('calculated');
for (var i=0;i < elements.length; ++i){
elements[i].innerHTML = elements[i].innerHTML.slice(0, -42);
};
})();
&#13;
<div class="calculated">Content3 Content3 Content3 Content3 Content3 Content3 Content3 Content000 </div>
<div class="calculated">Content2 Content2 Content2 Content2 Content2 Content2 Content2 Content000 </div>
<div class="calculated">Content 1Content 1Content 1Content 1Content 1Content 1Content Content000</div>
&#13;
祝你好运)
答案 1 :(得分:0)
function trimString(){
return document.getElementsByClassName('calculated')[0].innerHTML.slice(0,-42);
}
答案 2 :(得分:0)
function trimThingies() {
var targets = document.getElementsByClassName('calculated');
for (var i=0;i<targets.length;i++) {
var tgt = targets[i];
if (tgt.innerHTML.length > 42) {
tgt.innerHTML = tgt.innerHTML.slice(0, -42);
}
}
}
应该这样做。然后在加载时或适当时调用trimThingies()。
很优雅,但它应该可以胜任。
更新:JSFiddle