选择容器中的最后一个单词

时间:2011-08-16 08:21:53

标签: javascript jquery

我只是想知道是否有办法在DIV中选择最后一个WORD。我不认为有任何明显的方法可以做到这一点,所以有没有解决方法呢?

我不介意使用CSS或Javascript来实现这一目标。

提前致谢

6 个答案:

答案 0 :(得分: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 :(得分:2)

试试这个:

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

Here is a demo

如果div中的文本不包含任何div元素,那么这将起作用。否则,它不会,因为它将用纯文本替换所有以前的元素。

答案 2 :(得分: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 />');
    });
});

答案 3 :(得分:0)

您可以使用Javascript和HTML DOM访问div的内容,然后简单地拆分字符串(使用空格作为分隔符)并获取最后一个拆分部分。

答案 4 :(得分: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 );
} );

SCOPE CREEP! 鉴于动态注入span标记的新要求,我修改了代码如下(我还更新了我的演示):

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

答案 5 :(得分:0)

这很有效。

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