2010-11-19 11 views
1

Ich frage mich, ob es eine Möglichkeit gibt, Klartext in einem div.number-plate zu ersetzen, mit einem Bild für jedes Zeichen (eins nach dem anderen)? Ich benutze JQueryWie ersetze ich ein Zeichen, das in einem DIV enthalten ist, und ersetzen Sie es durch ein Bild mit Jquery?

Jede Hilfe wird sehr geschätzt, Dank

+7

Sie bauen einen Erpresserbrief-Generator? –

+0

Hallo Nick, im Grunde habe ich eine Liste von Autokennzeichen als Klartext, jeweils innerhalb eines DIV.Ich versuche, jedes Zeichen im DIV durch ein Bild zu ersetzen. z.B. Zeichen 'A' mit einem Bild von sich selbst, daher 'A.gif'. Bitte lassen Sie mich wissen, wenn Sie mich brauchen, um weiter zu klären, Danke – Nasir

+3

@Nasir - Ich fühlte, Sie waren nur verwirrt und * eigentlich * brauchte einen Lösegeldgenerator sowieso, also habe ich Sie eins: http://www.jsfiddle.net/ nick_craver/9qwFY/11/ –

Antwort

10
+0

haha, gut gemacht und +1 :-) –

+0

+1 für mehr als nur darüber hinaus! Übrigens, wann kann ich meinen Hund zurückhaben? : P – alex

+0

+1 - Sehr lustig. Obwohl ich mir mehr Sorgen um die Gerbil mache. – GenericTypeTea

0
var charMap = { 
    'A': 'A.gif', 'B': 'B.gif' // ... etc. 
} 

$("div.number-plate").each(function() { 
    var text = $(this).text(); // Assuming no HTML content 
    var out = []; 
    for (var i = 0, len = text.length; i < len; i++) { 
    var img= charMap[text.charAt(i)]; 
    if (img) out.push("<img src='" + img + "'>"); 
    } 
    $(this).html(out.join("")); 
}); 

(ungetestet)

6
var div = $("div.number-plate"), 
    txt = div.text(), 
    pre = '<img src="images/char-', 
    suf = '.gif">', 
    result = pre + txt.split("").join(suf+pre) + suf; 

div.html(result); 

Musternummernschild:

V332LAE

Sa mple Ergebnis:

Es ist eine kurze, einfache Lösung, in der Sie auch Bilder müssen für Interpunktionszeichen, wenn sie in Ihrem Text existieren. Da Sie mit Nummernschildern arbeiten, sollte das kein Problem sein.

Dank für die Einführung von mir http://dummyimage.com zu @ Nick, ich habe eine Demo von meinem eigenen einzurichten:

http://www.jsfiddle.net/aCdLR/

+0

Das ist großartig! +1. Obwohl das * wirklich * cool ist, ist es auch, den Char als 'alt'-Attribut jedes Bildes zu setzen :) – alex

0

Etwas wie folgt aus:

$(document).ready(function() { 

    var str = $('div.number-plate').html(); 
    var output = ''; 

    for (i = 0; i < str.length; i++) { 
    var char = str.substr(i, 1); 
    output = output + '<img src="/images/characters/' + char + '.gif" />'; 
    } 

    $('div.number-plate').html(output);   
}); 
0

Wenn Sie jedes Zeichen umwandeln müssen (oder ausfiltern nicht-alnums) die $.map() verwendet werden könnten:

$('.number-plate').html(function(i, o) { 
    var imgs = $.map(o.split(''), function(c) { 
     return '<img src="images/' + c.toLowerCase() + '.png" />'; 
    }); 
    return imgs.join(''); 
}); 

Zeichen können herausgefiltert werden, indem 0 zurückgegeben wirdin der Mapping-Funktion.

(- with dummy images (kein Grund $.map() zu verwenden, obwohl))

Verwandte Themen