Учитывая идентификатор, найдите и замените последнее предложение оболочкой - PullRequest
1 голос
/ 19 июля 2010

С учетом следующего:

<div id="bigchuck">
 <p>blah blah blah.</p>
 <p>yada yada yada.</p>
 <p>Tada. Bing bong the witch is dead. Door bell.</p>
</div>

Как JavaScript / JQUERY может найти последнее предложение «Дверной звонок» и обернуть его тегом, чтобы получить:

<div id="bigchuck">
 <p>blah blah blah.</p>
 <p>yada yada yada.</p>
 <p>Tada. Bing bong the witch is dead. <span>Door bell.</span></p>
</div>

Спасибовы

Ответы [ 3 ]

3 голосов
/ 19 июля 2010

Это решение основано на решении Патрика (он заслуживает похвалы за подход function(i,html)), но оно просто оборачивает последнее предложение, а не пробел перед ним:

$('#bigchuck p:last').html( function(i,html) {
  var arr = html.split(". ");
  arr[arr.length-1]="<span>"+arr[arr.length-1]+"</span>";
  return arr.join(". ");
});

Воткод в действии .

2 голосов
/ 19 июля 2010

Попробуйте это: http://jsfiddle.net/NpjUt/

$('#bigchuck p:last').html( function(i,html) {
    var arr = html.split(/(\.)/);
    arr.splice(arr.length - 3, 0, '<span>');
    arr.push('</span>')
    return arr.join('');
});

1007 *

2 голосов
/ 19 июля 2010

попробуйте это:

var plast = $("#bigchuck").find("p:last").text();

var part = plast.split("."), pos = part.length - 2;
if (part.length < 2)
  pos = 0;

part[pos] = "<span>" + part[pos] + ".</span>";
part.pop(); // <-edit for comment

$("#bigchuck").find("p:last").html(part.join("."));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...