3

How do I highlight (css: background-color) a word with JavaScript when the mouse pointer is hovering over it? It should be possible to select it by clicking on it then and saving it in a variable.

1

1 Answer 1

5
var words=$("#yourTextContainer").text().split(' '); $("#yourTextContainer").html(""); $.each(words, function(i,val){ //wrap each word in a span tag $('<span/>').text(val+" ").appendTo("#yourTextContainer"); }); $("#yourTextContainer span").live("mouseover",function(){ //highlight a word when hovered $(this).css("background-color","yellow"); }); $("#yourTextContainer span").live("mouseout",function(){ //change bg to white if not selected if($(this).css("background-color") !="rgb(0, 0, 255)") { $(this).css("background-color","white"); } }); $("#yourTextContainer span").live("click",function(){ $("#yourTextContainer span").css("background-color","white"); $(this).css("background-color","blue"); //gets the text of clicked span tag var text = $(this).text(); }); 

EDIT:See the example http://jsfiddle.net/aD5Mu/

Sign up to request clarification or add additional context in comments.

3 Comments

This is a good answer, but keep in mind that this could be very slow with large amounts of text.
The hover styles can be done with CSS, and delegate will reduce the number of elements the event have to go through before hitting the handler. Otherwise, there's probably no other way to efficiently do this
amazing ... but how would I get rid of the space and points in the selection and add support for more than one paragraph?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.