2012-05-24 2 views
3

Вот пример:Javascript - Получение последнего слова в строке

<div><span style="font-size:15px;">some text here which is </span> 
<span style="color:red;">split automatically by the browser.</span></div> 

, который браузер делает, как (со стилями, конечно):

some text here which is split 
automatically by the browser. 

Я строю вверх JavaScript Application который должен понимать последнее слово в каждой строке (split в этом случае). В настоящее время я использую свойство CSS white-space для обработки текста переполнения. Поэтому браузер не даст мне понять, где он нарушает линию. Итак, что было бы хорошей функцией для понимания последнего слова в каждой строке?

EDIT

Я использую чисто JavaScript, поэтому JQuery не будет вариант и white-space свойство применяется к div. Так что, на самом деле, подумайте, что это div как средство визуализации линии.

+0

- это линии, всегда обернутые пролетом? jQuery вариант или просто JS? – Joseph

+1

@JosephtheDreamer, я обновил вопрос. –

+0

http://stackoverflow.com/questions/5673752/searching-for-a-last-word-in-javascript – msanford

ответ

1

Вы можете переписать все предложение по слову, отслеживая изменения высоты. Вот некоторые пояснения по коду:

HTML:

<div id="flop" class="foobar">Lorem ipsum dolor sit amet, consectetur adipisicing 
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim 
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit 
esse cillum dolore eu fugiat nulla pariatur.</div> 
<br> 
<button value="Go" onclick="foo();">Go</button>​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

Сценарий:

function foo(){ 
    var d = document.getElementById('flop'); 
    var t = d.innerHTML; 
    var w = t.split(' ');  

    d.innerHTML = w[0]; 
    var height = d.clientHeight; 
    for(var i = 1; i < w.length; i++){ 
     d.innerHTML = d.innerHTML + ' ' + w[i]; 

     if(d.clientHeight > height){ 
      height = d.clientHeight; 
      console.log(w[i-1]); 
     } 
    } 
} 

Это будет регистрировать последние слова каждой строки на консоль, за исключением последней строки. Я оставляю это вам. Самое приятное в этом решении заключается в том, что даже после изменения размера окна он работает правильно.

Кстати, Yi Jiang заслуживает всякого кредита за его ответ this question здесь, на SO.

+0

Да, я, наконец, сделал что-то вроде этого. –

 Смежные вопросы

  • Нет связанных вопросов^_^