2012-05-12 15 views
7
Ben rangy kitaplık kullanıyorum ve aşağıdaki gibi düzenlenebilir bir içerikte metni seçebilirsiniz

ile seçilen metin için ana düğüm alınıyor ana düğüm/öğe. Örneğin,rangy kütüphaneye

Metin seçiyorsam, güçlü düğümü veya H1 öğesini de nasıl ekleyebilirim?

+1

etrafında Messing biraz daha ben kullanabilir görüyoruz: sel.anchorNode.parentNode.nodeName – Frank

cevap

8

sel.anchorNode.parentNode size seçimin sadece bir ucunu içeren düğümün ana düğüm alacak. Tüm seçim için en içteki öğeyi elde etmek için en kolay şey, seçimden bir Aralık almak ve commonAncestorContainer özelliğine bakmaktır (bir metin düğümü olabilir, bu durumda üst öğeyi almanız gerekir):

var sel = rangy.getSelection(); 
if (sel.rangeCount > 0) { 
    var range = sel.getRangeAt(0); 
    var parentElement = range.commonAncestorContainer; 
    if (parentElement.nodeType == 3) { 
     parentElement = parentElement.parentNode; 
    } 
} 
+0

Büyük teşekkür pek! – Frank

+0

Bu, yalnızca her ikisini de seçili değilken, "strong" veya "h1" etiketinde metin seçtiğimizde çalışır. Her iki etiket için seçilen parça için bu nasıl yapılır (metin: metin benim)? – kicaj

İlgili konular