2016-04-27 1 views
0

Je dois implémenter la sélection de texte par plage sur le clic du mot courant à la fin de cette phrase dans le paragraphe.Comment sélectionner le texte par plage du mot courant à la fin de cette phrase (.) Dans un paragraphe

Par exemple:

Lorem Ipsum est simplement faux texte de l'industrie de l'imprimerie et de la composition. Lorem Ipsum a été le ...

est un paragraphe. Quand je clique sur le mannequin, la sélection doit être faite de mannequin à l'industrie. Le code ci-dessous me permet de sélectionner le paragraphe complet en un seul clic.

<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
    <style type="text/css"> 
     p { 
     font-family: monospace; 
     font-size: 1.5em; 
     }  
    </style> 
    </head> 

    <body> 

     <div id="autoselect"> 
     <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, 
    when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, 
    remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing 
    software like Aldus PageMaker including versions of Lorem Ipsum.</p> 
    </div> 

<script type="text/javascript"> 

    function SelectText(element) { 
    var doc = document, 
     text = doc.getElementById(element), 
     range, 
     selection; 
    if (doc.body.createTextRange) { 
     range = document.body.createTextRange(); 
     range.moveToElementText(text); 
     range.select(); 
    } else if (window.getSelection) { 
     selection = window.getSelection();   
     range = document.createRange(); 
     range.selectNodeContents(text); 
     selection.removeAllRanges(); 
     selection.addRange(range); 
    } 
} 
$(function() { 

    $('p').click(function() { 
     SelectText('autoselect'); 
    }); 

}); 

</script> 
</body> 

Répondre

0

Ce violon fait à peu près ce que vous voulez. Pourrait avoir besoin d'un peu de peaufinage, mais il sélectionne le mot cliqué au premier mot avec une période. La manipulation des espaces peut être difficile, comme pour l'instant, elle sélectionne aussi l'espace après la période.

https://jsfiddle.net/flatulentdog/86tfuff0/

var words = $("p:first").text().split(" "); 
    var text = words.join("</span> <span>"); 
    $("p:first").html("<span>" + text + "</span>"); 
    $("span").click(function() { 
    $(this).css("background-color","yellow"); 
    var next = $(this).next(); 
    while(next.text().indexOf('.') === -1) { 
     next.css("background-color","yellow"); 
     next = next.next(); 
    } 
    next.css("background-color","yellow"); 
    }); 
+0

Merci, Cela m'a vraiment aidé. –