Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.05.2015, 19:44
Аватар для Кирюха =)
Профессор
Отправить личное сообщение для Кирюха =) Посмотреть профиль Найти все сообщения от Кирюха =)
 
Регистрация: 27.07.2011
Сообщений: 207

Как взять только текст а разметку оставить внутри элемента?
<div class="somediv">
 <a href="#">1</a>
 <a href="#">2</a>
 <a href="#">3</a> 
 <a href="#">4</a> 
 5
</div>

Всем привет. Встала передо мной такая задача, нужно как нибудь текст в div'е с классом somediv обернуть в span а остальную разметку в этом div'е не трогать. В данном случае нужно обернуть в span текст "5". Хочеться нормально как то решить это, а не регулярками, прошу помогите.
Ответить с цитированием
  #2 (permalink)  
Старый 17.05.2015, 21:10
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Страничный навигатор?
Ответить с цитированием
  #3 (permalink)  
Старый 17.05.2015, 21:53
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Document</title>
  <style>
    span {
      color: red;
    }
  </style>
</head>
<body>
  <div class="somediv">
    <a href="#">1</a><br/ >
    <a href="#">2</a><br/ >
    <a href="#">3</a><br/ >
    <a href="#">4</a><br/ >
    5<br/ >
    6<br/ >
    7<br/ >
    8<br/ >
  </div>
  
  <script>
    var div = document.querySelector('.somediv');

    Array.prototype.forEach.call(div.childNodes, function(item) {
      if(item.nodeType == 3 && item.data.match(/\S+/)) {
        var span = document.createElement('span');
        span.innerHTML = item.data;
        item.parentNode.replaceChild(span, item);
      }
    });
  </script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 17.05.2015, 22:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Кирюха =),
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
       var s = $(".somediv"), a = $("*",s).remove(), t = $.trim(s.text());
       s.wrapInner("<span/>").prepend(a);
       $("span:last",s).text(t);
       alert($("body").html())
});


  </script>
</head>

<body>
<div class="somediv">
 <a href="#">1</a>
 <a href="#">2</a>
 <a href="#">3</a>
 <a href="#">4</a>
 5
</div>


</body>

</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как взять выделенный текст из textarea? fankiss Общие вопросы Javascript 5 13.02.2016 14:36
Как вставить текст из куков в input формы? perfect Events/DOM/Window 3 05.03.2014 08:22
Как получить текст внутри iframe на другом домене? Alexander Majesty Events/DOM/Window 1 23.12.2009 22:10
Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров? Andrey32 jQuery 3 23.05.2009 01:33
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42