Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обернуть элемент в тег (https://javascript.ru/forum/events/32673-obernut-ehlement-v-teg.html)

ivan2006bip 25.10.2012 12:28

Обернуть элемент в тег
 
Здравствуйте!

Подскажите пожалуйста, есть меню,

<ul class="menu">
<li class="menu_li"><a href="#">Пункт меню</a></li>
<li class="menu_li"><a href="#">Пункт меню</a></li>
<li class="menu_li"><a href="#">Пункт меню</a></li>
</ul>

нужно обернуть каждое второе слово ссылки в тег <em>

чтобы в итоге получилось

<ul class="menu">
<li class="menu_li"><a href="#">Пункт <em>меню</em></a></li>
<li class="menu_li"><a href="#">Пункт <em>меню</em></a></li>
<li class="menu_li"><a href="#">Пункт <em>меню</em></a></li>
</ul>

как это сделать?

Your 25.10.2012 13:11

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Example</title>
</head>
<body>
	<ul class="menu">
		<li class="menu_li">
			<a href="#">Пункт меню</a>
		</li>
		<li class="menu_li">
			<a href="#">Пункт меню</a>
		</li>
		<li class="menu_li">
			<a href="#">Пункт меню</a>
		</li>
	</ul>
	<script type="text/javascript">
		var ul=document.getElementsByClassName('menu')[0].getElementsByTagName('a'),
			ahtml='';
		for(var i in ul) {
			ahtml=ul[i].innerHTML.split(' ');
			if('undefined'!==typeof ahtml) {
				ul[i].innerHTML=ahtml[0]+' <em>'+ahtml[1]+'</em>';
			}
		}
	</script>
</body>
</html>



JQuery:
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Example</title>
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
</head>
<body>
	<ul class="menu">
		<li class="menu_li">
			<a href="#">Пункт меню</a>
		</li>
		<li class="menu_li">
			<a href="#">Пункт меню</a>
		</li>
		<li class="menu_li">
			<a href="#">Пункт меню</a>
		</li>
	</ul>
	<script type="text/javascript">
		var ahtml='';
		$('.menu a').each(function() {
			ahtml=$(this).text().split(' ');
			$(this).html(ahtml[0]+' <em>'+ahtml[1]+'</em>');
		});
	</script>
</body>
</html>

bes 25.10.2012 16:27

$('.menu a').wrapInner('<em></em>')

Your 26.10.2012 07:17

bes, это весь текст ссылки обернется.
А надо только 2 слово.

bes 26.10.2012 13:49

Цитата:

Сообщение от Your
bes, это весь текст ссылки обернется.
А надо только 2 слово.

смотрел бегло, результат налицо :)

melky 26.10.2012 14:09

Цитата:

Сообщение от Your
if('undefined'!==typeof ahtml)

alert( typeof "".split(" ") );

saturn 26.10.2012 15:35

Вот на jQuery

$('ul.menu li a').each(function (){
                all_text = $(this).text();
                array_words = all_text.split(' ')
                for(word in array_words){
                    if(word % 2 != 0) {
                        alert("<em>" + array_words[word] + "</em>")
                    }
                }
    });

ivan2006bip 27.10.2012 00:57

всем спасибо! решено


Часовой пояс GMT +3, время: 17:34.