2011-08-16 35 views
5

我只是想知道是否有辦法選擇DIV中的最後一個單詞。我不認爲有什麼明顯的方法可以做到這一點,那麼是否有解決方法?選擇容器中的最後一個單詞

我不介意使用CSS或Javascript來實現這一點。

在此先感謝

回答

2

試試這個:

var $div = $('div');  
$div.html($div.text().replace(/(\w+?)$/, '<span>$1</span>')); 

Here is a demo

如果div內的文本不包含任何div元素,那麼這將工作。否則,它不會,因爲它會用純文本替換所有以前的元素。

+0

它工作完美,但如果我們有一些變音符號它不適用,爲什麼?一些想法? –

0

你也許可以使用JavaScript和HTML DOM訪問div的內容,然後簡單地分割字符串(如帶有隔板的空間),並採取最後的分割部分。

3

<div>或沒有<div>,它歸結爲基本字符串處理(使用match())方法。

var words = $('#your_div').text().match(/(\w+)/g); 
if (words.length) { 
    var last_word = words[words.length - 1]; 
} 

我們建立的使用方法match()所有單詞一個數組,然後拿到最後一個(var last_word = words[words.length - 1];),但前提是發現了一些字(if (words.length))。

+1

感謝您的回答,但我不明白這可如何用作選擇器。我需要在「」中包含最後一個單詞。也許使用'.replace()'方法? –

0

這裏是我解決這個問題:

演示:http://wecodesign.com/demos/stackoverflow-7075397.htm

function getLastWord(words) { 
    lastWord = words.split(' ').pop(); 
    return lastWord; 
} 

$(document).ready(function() { 
    theWords = $('#theWords').html(); 
    lastWord = getLastWord(theWords); 
    $('#lastWord').html(lastWord); 
}); 

範圍蔓延! 鑑於新的要求,動態地注入跨度標籤,我已經修改了代碼如下(我也更新了我的演示):

$(document).ready(function() { 
    theWords = $('#theWords').html(); 
    lastWord = getLastWord(theWords); 
    appendCon = '#lastWord'; 
    $(appendCon) .append($('<span> '+lastWord+'</span>')); 
}); 
+0

這個問題是我需要''自動添加。內容將由Wordpress動態添加。 –

1

如果你是又一個基於正則表達式的解決方案,你可以嘗試(使用jQuery的):

$(function() { 
    $('div').each(function() { 
     var $div = $(this); 
     var text = $div.text(); // get the text of everything inside the div 
     // the next line gets the last word followed only by non-word characters in that text 
     // NB: the [\s\S] trick is to match any character, *including* new lines 
     var last_word = $.trim(text).replace(/^[\s\S]*\b(\w+)\b[\W]*$/i, '$1'); 

     // this is from a jsFiddle I tried to post to test it. 
     $('#output').append($div.attr('id') + ': Last word = ' + last_word + '<br />'); 
    }); 
}); 
0

This Works。

var text = 'Lorem Ipsum Dolor Sit Amet'; 
var textSplit = text.split(' ');//split the text with space characters 
var lastPart = textSplit.pop(); // retrieve the last word from the string 
var firstPart = textSplit.join(' '); // retriece the words except the last word 
var result = firstPart + '&nbsp;<strong>' + lastPart + '</strong>'; //join first part and last part and put the required html for the last word 
相關問題