Como tdammers menciona, el manejo de todos los detalles de armar un proceso para manejar lo que sugiere tiene muchos matices que pueden tener que abordarse, dependiendo de lo que esté haciendo.
Los fundamentos de lo que estamos tratando de hacer es:
- Wrap un elemento en todo el texto que desea encontrar la posición para, por ejemplo, en el caso de texto, probablemente un
<span>
.
- Obtenga
$.offset()
o $.position()
del elemento o elementos que ha agregado. Cualquiera que elija es relevante para lo que está tratando de hacer; el primero es relevante para el document
, el segundo para el elemento que lo contiene.
creé una demostración simple de una secuencia de comandos para "destacado", un término escrito en un cuadro de texto en varios párrafos usando div
s con position: absolute
y top
/left
compensaciones en relación con las condiciones que se encuentran en los párrafos (que se encuentra por el <span>
rodeándolos).
Nota, esto es solo una demostración (de $.offset()
); no es un código listo para producción. Hay un enlace a la demo de violín en vivo debajo de los fragmentos de código.
Primero, creé una función para buscar y crear un resaltado <div>
para cada término encontrado.
function highlightWordPositions(word) {
var $paras = $('p'),
$spans,
_top = 0,
_left = 0;
$paras.each(function(){
var $p = $(this),
regex = new RegExp(word, 'g');
$p.html($p.text().replace(regex, '<span>' + word + '</span>'));
$spans = $p.find('span');
$spans.each(function(){
var $span = $(this),
$offset = $span.offset(),
$overlay = $('<div class="overlay"/>');
$overlay
.offset($offset)
.css({
width: $span.innerWidth(),
height: $span.innerHeight()
}).show();
$(document.body).append($overlay);
});
});
}
A continuación, os adjunto una devolución de llamada al evento $.keyup()
:
$('#term').keyup(function(event){
var term = this.value;
if (term == '') {
$('.overlay').remove();
return false;
} else if (term.indexOf(' ') != -1) {
this.value = term.replace(' ', '');
return false;
}
$('.overlay').remove();
highlightWordPositions(term);
});
http://jsfiddle.net/JaN75/
Vas a tener que definir lo que entendemos por "la posición de las letras en html". En relación con la forma en que se muestran en la pantalla? Describe lo que estás tratando de lograr, no cómo piensas que tienes que lograrlo. –
¿Qué quiere decir exactamente por posición? ¿Índice o qué y en qué contexto/padre? – Sarfraz
puede obtener su elemento con javascript o jquery, obténgalo con la etiqueta. y con jquery puedes encontrar su posición muy fácil. http://api.jquery.com/position/ –