5

Il mio sito utilizza jQuery 1.4.2. Il problema è .replaceWith() non funziona in IE6 & IE7 in jQuery 1.4.2. Esiste un metodo alternativo supportato da IE6 & IE7 in jQuery 1.4.2?jQuery .replaceWith() alternativo

Il violino è qui: http://jsfiddle.net/8CEwf/1/

lo so, può non sembrare jQuery è collegato ad esso, ma se si guarda nel codice HTML, il jQuery è lì dal jsFiddle non offre la versione 1.4.2

HTML:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<img src="/v/vspfiles/templates/cyberfront/images/buttons/btn_addtocart_small.gif"> 
<input type="image" src="/v/vspfiles/templates/cyberfront/images/buttons/btn_go_gray.gif"> 
<img src="/v/vspfiles/templates/cyberfront/images/Bullet_MoreInfo.gif"> 

script:

$(document).ready(function(){ 
$('img[src="/v/vspfiles/templates/cyberfront/images/buttons/btn_addtocart_small.gif"]').replaceWith('<br /><span id="blackbutton" class="mediumbutton" style="display:block;">Add to Cart</span>'); 
$('input[src="/v/vspfiles/templates/cyberfront/images/buttons/btn_go_gray.gif"]').replaceWith('<input type="submit" class="graybutton smallbutton" name="Go" alt="Go" value="Go" title="Go">'); 
$('img[src="/v/vspfiles/templates/cyberfront/images/Bullet_MoreInfo.gif"]').replaceWith('<span class="learnmore">Learn More</span>'); 
}); 

risposta

7
$("element").after("text to replace element with").remove(); 

Example.

Selezioniamo semplicemente l'elemento che vogliamo sostituire, aggiungiamo del testo dopo di esso e lo rimuoviamo dal DOM.

Supponendo che questo è per una funzionalità "Aggiungi al carrello" sul vostro sito web, e che tutti gli ingressi avranno simili src attributi, allora perchè non' si aggiunge solo una classe a loro per rendere la selezione più facile?

+0

Opere! Grazie. – henryaaron

+0

Impossibile modificare le pagine principali ... ecco perché sto attraversando l'intero ostacolo. – henryaaron

+0

@ user1090389: Ah, questo ha senso. Beh buona fortuna! :) – Purag

-4

Questa è un'implementazione JS diretta di una funzione PHP che dovrebbe soddisfare le tue esigenze.

http://phpjs.org/functions/str_replace:527

+1

Questa è una misura assolutamente non necessaria per raggiungere questo semplice e semplice compito. – Purag

+0

I miei siti non sono PHP – henryaaron

+0

@ user1090389 Questo non è PHP, è JS. È una versione JS di una funzione PHP. Purmou, ovviamente non è necessario, ma è ancora valido, stava solo suggerendo una soluzione alternativa. – TamDenholm

1

Ecco un altro trucco. È possibile svuotare l'elemento prima di sostituirlo.

$(document).ready(function(){ 
    $(selector).empty().replaceWith('...'); 
});