what is the DOM structure of your table? Is it relatively simple -- i.e.:
Code:
<table id="data">
<tr>
<td>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis suscipit ultricies tortor. Morbi auctor, sapien ut posuere porta, magna nisl tempus leo, ut dictum ipsum sem non odio.</p>
</td>
<td>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis suscipit ultricies tortor. Morbi auctor, sapien ut posuere porta, magna nisl tempus leo, ut dictum ipsum sem non odio.</p>
</td>
</tr>
<tr>
<td>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis suscipit ultricies tortor. Morbi auctor, sapien ut posuere porta, magna nisl tempus leo, ut dictum ipsum sem non odio.</p>
</td>
<td>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis suscipit ultricies tortor. Morbi auctor, sapien ut posuere porta, magna nisl tempus leo, ut dictum ipsum sem non odio.</p>
</td>
</tr>
</table>
where each <p> tag is uninterrupted by further child nodes (again, for example)....
Or is it more like this:
Code:
<table id="data">
<tr>
<td>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis suscipit ultricies tortor. <b>Morbi auctor, sapien ut posuere porta, magna nisl tempus leo, ut dictum ipsum</b> sem non odio.</p>
</td>
<td>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis suscipit ultricies tortor. <span style="color:red">Morbi auctor, sapien ut posuere porta, magna nisl tempus leo</span>, ut dictum ipsum sem non odio.</p>
</td>
</tr>
<tr>
<td>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis suscipit ultricies tortor. <img src="picture.jpg" alt="a picture" /> Morbi auctor, sapien ut posuere porta, magna nisl tempus leo, ut dictum ipsum sem non odio.</p>
</td>
<td>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis suscipit ultricies tortor. <b><i>Morbi auctor, sapien ut posuere porta, magna nisl tempus leo, ut dictum ipsum sem non odio.</i></b></p>
</td>
</tr>
</table>
where each <p> tag
is interrupted by further child nodes....
The latter version is much harder to traverse, either with the DOM or regular expressions, using Javascript (at least for me)...
With PHP, I could do this a lot easier, because the regex functions seem more powerful to me (regardless of the complexity of the table's DOM structure)....
Do you have to use all Javascript for this?..I think I might use some AJAX to to send the table's innerHTML to a PHP script, use some regex there (to create the text highlighting), and then send the innerHTML back to your javascript to be reinserted into the DOM...And keep doing that every time the shortcut key is pressed thereafter...