Как взять только текст а разметку оставить внутри элемента?
<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". Хочеться нормально как то решить это, а не регулярками, прошу помогите. |
Страничный навигатор?
|
<!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>
|
Кирюха =),
<!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>
|
| Часовой пояс GMT +3, время: 23:38. |