2011-12-25 17 views
17

Deseo eliminar el texto "Por:" de un elemento de mi sitio web. Quiero que el resto del texto permanezca allí. ¿Cómo puedo lograr eso con jQuery? Gracias.jQuery Eliminar texto específico de un elemento

El HTML

<div id="text">By: Anonymous From Minnesota</div> 

quiero que acaba de ser:

<div id="text">Anonymous From Minnesota</div> 
+0

publica tu html – themerlinproject

+0

texto de eliminación de lo que el atributo de qué elemento? ¿Te gusta ... el valor actual de un campo de entrada de texto? ¿O simplemente texto arbitrario dentro de un elemento div o p? – codercake

+0

@themerlinproject Agregó el código HTML – henryaaron

Respuesta

28

Si desea encontrar todos los elementos con "por" en y quítelo, puede intentar esto:

$(':contains("By:")').each(function(){ 
    $(this).html($(this).html().split("By:").join("")); 
}); 

Esto elimina cualquier aparición de "Por:" en cualquier elemento. Si desea orientar el tipo de elementos específicos, simplemente cambie $(':contains("By:")') para incluir el selector que más le convenga.

+0

Esto parece ser lo que estaba buscando, sin embargo, por alguna razón, una coma se agrega aleatoriamente: http: // jsfiddle. net/xSphc/ – henryaaron

+0

¡Ja! Olvidé agregar el parámetro separador para join(). He actualizado las respuestas con join (""). Básicamente, lo que está haciendo es dividir la cadena en una matriz usando "Por:" como separador, luego unir los elementos de la matriz a una cadena sin usar nada como separador. Espero que ayude :) –

+1

Si está interesado en ver el rendimiento de .split(). Join() en los versículos .replace (// g, ""), puede encontrar este interesante: http://jsperf.com/split-join-vs-regex-replace –

3

var str = $("#text").text(); 
 
$("#text").text(str.substring(3));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="text">By: Anonymous From Minnesota</div>

El uso de JavaScript de substring y darle a su div un ID para acceder a ella fácilmente:

html:

<div id="text">By: Anonymous From Minnesota</div> 

jQuery:

var str = $("#text").text(); 
$("#text").text(str.substring(3)); 

que podría hacerlo en una línea demasiado:

$("#text").text($("#text").text().substring(3)); 
9

una solución más global utilizando expresiones regulares. Esto reemplazará By:, incluso si cambiará la estructura de la cadena.

var str = $('div').text().replace(/By:/g, ''); 
 
$('div').text(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="text">By: Anonymous From Minnesota</div>

1

dan una identificación única a DIV, t:

$('#div_id').html($('#div_id').html().substring(3)); 

violín: http://jsfiddle.net/ChUB4/

Cuestiones relacionadas