Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get HTML element contained in range

I am using document.getSelection() to select some text. I would like to know what type of element the selected range contains (I specifically want to see if it is an anchor tag).

var selection = document.getSelection();
var range = selection.getRangeAt(0);

So I can get the range, but how can I know what element is in that range? Happy to use plain js or jQuery.

EDIT:

Here is what I came up with:

var updateLink = function(url) {

    var selection = document.getSelection();
    var range = selection.getRangeAt(0);
    if (range != 0) {
        var containerElement = range.commonAncestorContainer;
        if (containerElement.nodeType != 1) {
            containerElement = containerElement.parentNode;
            var e = $(containerElement);
            e.attr('href', url);
        }

    }

}//end
like image 805
Nic Hubbard Avatar asked Dec 11 '13 09:12

Nic Hubbard


1 Answers

Try this:

var obj = document.getSelection();
var parentNode = $(obj.anchorNode).parent();

Here is jsfiddle

like image 142
Ringo Avatar answered Oct 02 '22 18:10

Ringo