Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Обернуть тегами выделенный фрагмент текста (https://javascript.ru/forum/jquery/46440-obernut-tegami-vydelennyjj-fragment-teksta.html)

Sanu0074 10.04.2014 20:22

рони,
ну думаю будет так:
проверяется строка, сначала находятся самые крайние теги к выделенному фрагменту
проверяется наличие вложенных, если нет таких же тегов совпадающих с переданными - фрагмент обрамляется переданными тегами, если есть такиеже теги (вложенные или крайние) как переданные - то они обрезаются...... как то так...
но все же я думаю это неоч хорошее решение, верится что есть другой более разумный подход, только не знаю какой(

Sanu0074 11.04.2014 00:14

Вот сделал, но очень криво работает:
setTag = function(tag) {
				var mainDiv = document.getElementById(sett.id),
					sel = getSel(mainDiv),
					val = editor.html();
					
					
					for(var i=sel.start; i>0; i--){
						if(val[i]==' ' || val[i]=='<'){
							sel.start=i;
							break;
						}
					}
					
					for(var i=sel.end; i<val.length; i++){
						if(val[i]==' ' || val[i]=='<'){
							sel.end=i;
							break;
						}
					}
					
					var fragment = val.substr(sel.start, (sel.end-sel.start));

					if(fragment.search("<"+tag+">")==0){
						fragment=fragment.replace("<"+tag+">","");
						fragment=fragment.replace("</"+tag+">","");
					}
										
					var text = val.substr(0, sel.start) + "<"+tag+">" + fragment + "</"+tag+">" + val.substr(sel.end);
				
				editor.html(text);
				$(".html").val(text);
			}


надо что-то другое думать(
если бы получить родительский элемент исходя из положения курсора (sel.start)....

рони 11.04.2014 09:53

Sanu0074,
на всякий случай http://learn.javascript.ru/vydelenie...ge-i-selection


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