This Works。用一句话是字计算宽度
https://jsfiddle.net/stevenkaspar/ht7ostyx/9/
<div
class="parent" id='text'>
Contrary to popular belief Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.
</div>
<script>
function getWidth(pre_space, str, post_space, append_elem){
var pre = (pre_space) ? ' ' : '';
var post = (post_space) ? ' ' : '';
var tmp_div = $('<span style="white-space: nowrap;">'+pre+str+post+'</span>');
append_elem.append(tmp_div);
var width = tmp_div.width();
tmp_div.remove();
return width;
}
function linkEndLine(elem_id){
var elem = document.getElementById(elem_id);
var width = $(elem).width();
var text = elem.innerText;
var words = text.split(' ');
var line_width = 0;
var current_line = '';
var lines = [];
words.map(function(word, index){
if(line_width == 0){
line_width += getWidth(false, word, false, $(elem));
}
else {
line_width += getWidth(true, word, false, $(elem));
}
if((line_width/width) > 1){
lines.push(current_line);
line_width = getWidth(false, word, false, $(elem)); // new line
current_line = '';
}
current_line += ((current_line != '') ? ' ' : '') + word;
if(index == (words.length-1)){
lines.push(current_line);
}
})
var end_index = lines.length - 1;
lines[end_index] = '<a href="#">'+lines[end_index]+'</a>';
elem.innerHTML = lines.join(' ');
}
linkEndLine('text');
</script>
你是说,你知道前手的子?如果在逗号分割,对吧? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split。 –