Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   аналог двух строк кода создания Range-объкта для ie (https://javascript.ru/forum/events/24766-analog-dvukh-strok-koda-sozdaniya-range-obkta-dlya-ie.html)

syegorius 13.01.2012 13:57

аналог двух строк кода создания Range-объкта для ie
 
Доброе время суток!

Подскажите как должен выглядеть аналог вот такой функции для ie:

var s1=$(box).find('.cename:first').get(0),
      s2=$(box).find('.cename:last').get(0),
      s=win.getSelection();

if(s.rangeCount>0)s.removeAllRanges();//
savedRange=doc.createRange()//аналог ie - savedRange=doc.body.createTextRange();
//-----------------------Как заменить две нижние строки
savedRange.setStartBefore(s1)
savedRange.setEndAfter(s2)
//-----------------------
s.addRange(savedRange);//аналог ie - savedRange.select();


Поискал в интернете, нашел метод setEndPoint, но нормального доходчивого примера как его использовать так и не нашел, если он вообще подходит в моем случае.

Моя задача это создать выделение которое будет включать все что находится между эл-тами s1, s2 включительно.

Заранее спасибо за помощь!

Aetae 13.01.2012 15:06

http://2007.fastcoder.ru/articles/?aid=609

skfyann 13.01.2012 15:14

Цитата:

Сообщение от syegorius (Сообщение 150111)
Моя задача это создать выделение которое будет включать все что находится между эл-тами s1, s2 включительно.

Если цель только в этом, то может быть можно сделать так?

<!doctype html>
<html>
<head>
	<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
	<script type="text/javascript">
		$(document).ready( function() {
		var first = $("p").index($("p").first()),
			last = $("p").index($("p").last()),
			middle = $("p:gt(" + first + "):lt(" + (last-1) + ")");

		middle.css("color","red");

		});
	</script>
</head>
<body>
	<p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>7</p><p>8</p>
</body>
</html>


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