JQuery, добавить HTML - PullRequest
       7

JQuery, добавить HTML

1 голос
/ 22 февраля 2010

У меня есть такой вид HTML:

<h1> Text1 Text2 </h1>

Я хочу через jquery изменить этот HTML-код на:

<h1> <span>Text1</span> Text2 </h1>

У меня в голове идет просто добавление и регулярное выражение (возможно, у вас есть другие идеи), к сожалению, у меня нет опыта с "регулярным выражением" «Текст1» является изменяемым. Это должен быть первый текст в «h1» Может ли кто-нибудь помочь мне!

Спасибо!

Ответы [ 3 ]

3 голосов
/ 22 февраля 2010

Если вы хотите обернуть первое слово каждого H2 в промежутке, а в H2 гарантированно не будет тегов HTML внутри, вы сделаете это следующим образом:

// For each H2.
$('h2').each(function() {
  // Get text.
  var text = $(this).text();
  // Split into words.
  var words = text.split(' ');
  // Wrap the first word.
  if (words.length > 0) words[0] = '<span>' + words[0] + '</span>';
  // Join the results into a single string.
  var result = words.join(' ');
  // Put the results back into the H2.
  $(this).html(result);
});

Или с помощью регулярного выражения:

// For each H2.
$('h2').each(function() {
  $(this).html($(this).text().replace(/^(\W*)\b(\w+)\b/, '$1<span>$2</span>'));
});
1 голос
/ 22 февраля 2010

Следующие слова обернут первое слово первого тега h1 тегом span.

$("h1").html($("h1").html().replace(/^\w+\b/, function(result) {
    return "<span>" + result + "</span>";
}));
0 голосов
/ 22 февраля 2010

получить текст

var text = $('h2').text();
var $arr = text.split(' ');

теперь у вас есть значение в массиве, вы можете использовать цикл init или jsut, используя $ arr [0] и $ arr [1], чтобы использовать его как вам угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...