我只是想知道是否有办法在DIV中选择最后一个WORD。我不认为有任何明显的方法可以做到这一点,所以有没有解决方法呢?
我不介意使用CSS或Javascript来实现这一目标。
提前致谢
答案 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>'));
如果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 + ' <strong>' + lastPart + '</strong>'; //join first part and last part and put the required html for the last word