2011-12-25 9 views
17

Desidero rimuovere il testo "Per:" da un elemento nel mio sito web. Voglio che il resto del testo rimanga lì. Come posso ottenerlo con jQuery? Grazie.jQuery Rimozione di testo specifico da un elemento

Il codice HTML

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

io voglio che sia solo:

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

si prega di inviare il vostro html – themerlinproject

+0

testo togliere dal quale attributo della quale elemento? Come ... il valore corrente di un campo di inserimento del testo? O solo un testo arbitrario all'interno di un elemento div o p? – codercake

+0

@themerlinproject Aggiunta HTML – henryaaron

risposta

28

Se si voleva trovare ogni elemento con "By:" in e rimuoverlo, si potrebbe provare questo:

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

Ciò elimina qualsiasi occorrenza di "Per:" in qualsiasi elemento. Se vuoi scegliere come target il tipo di elementi, cambia semplicemente $(':contains("By:")') per includere qualsiasi selettore che ti si addice.

+0

Questo sembra quello che stavo cercando, tuttavia, per qualche motivo, una virgola viene aggiunta a caso: http: // jsfiddle. net/xSphc/ – henryaaron

+0

Hah! Ho dimenticato di aggiungere il parametro separatore a join(). Ho aggiornato le risposte con join (""). Fondamentalmente ciò che sta facendo è dividere la stringa in un array usando "By:" come separatore, quindi unendo gli elementi dell'array indietro in una stringa usando nulla come separatore. Spero che questo aiuti :) –

+1

Se sei interessato a vedere le prestazioni di base .split(). Join() verses .replace (// g, ""), potresti trovare questo interessante: 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>

Utilizzo di javascript di substring e dare il vostro div un ID per accedere facilmente:

html:

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

jquery:

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

si poteva fare in una linea troppo:

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

una soluzione più globale che utilizza le espressioni regolari. Questo sostituirà By: anche se la struttura della stringa cambierà.

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>

Problemi correlati