2016-04-02 3 views
0

Ich versuche, die Textposition eines HTML-Elements in einem anderen im Dom zu berechnen (ohne HTML-Entitäten). Zum Beispiel:Wie berechnen Sie die Textposition eines Elements in einem anderen?

<body> 


    <div class="texOne"> 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. 
    <div> 

    <div class="texTwo"> 
    Excepteur <mark id="example">sint</mark> occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
    <div> 

    <script> 
    var offsets=$("div.textTwo").calculateOffsetsOf("#example"); 

    //Result 
    offset.start=10 
    offset.end=14 
    </script> 

</body> 

Wie kann ich diese Offsets mit der bestmöglichen Leistung finden?

Antwort

0

Machen Sie sich zu diesem Zeitpunkt in Ihrer Programmierkarriere keine allzu großen Sorgen um die Leistung - konzentrieren Sie sich darauf, was sinnvoll ist.

Sie können Eltern innere html mit jQuery .html() Methode erhalten:

var parentHtml = $("div.texTwo").html() 
// -> Excepteur <mark id="example">sint</mark> occaecat cupidatat non proident... 

Machen Sie dasselbe für die äußere html des Kindes:

var childHtml = $("#example").outerHTML() 
// -> <mark id="example">sint</mark> 

Und Sie sollten den Ausgangspunkt berechnen können. Der Endpunkt ist nur der Anfangspunkt und die Länge des Kindtextes.

+0

Dies ist keine Lösung. Es erhält HTML-Entitäten, die die ursprüngliche Textposition ändern. Danke trotzdem. – Martin

+0

Nicht sicher, was Sie damit meinen. Sie können leicht eine Methode erstellen, um Start und Ende wie gewünscht zu geben. Gibt es etwas daran, das du nicht verstehst? – tyler