2010-11-19 40 views
1

我想知道是否有一種方法可以替換div.number-plate中的純文本,併爲每個字符(逐個)顯示圖像?我使用JQuery如何使用Jquery替換DIV中包含的字符,並用圖像替換?

任何幫助是極大的讚賞,感謝

+7

你建立一個勒索發電機? – 2010-11-19 11:26:19

+0

嗨尼克,基本上我有一個汽車車牌號列表作爲純文本,每個DIV內。我試圖用圖像替換DIV中的每個字符。例如字符'A'與自身的圖像,因此'A.gif'。請讓我知道如果你需要我進一步澄清,謝謝 – Nasir 2010-11-19 11:33:41

+3

@Nasir - 我覺得你只是困惑,*實際上*需要一個贖金音符發生器,所以我讓你一個:http://www.jsfiddle.net/ nick_craver/9qwFY/11/ – 2010-11-19 12:21:44

回答

10
+0

哈哈,幹得好,+1 :-) – 2010-11-19 11:55:51

+0

+1超越!順便說一下,我什麼時候可以讓我的狗回來? :P – alex 2010-11-19 12:45:38

+0

+1 - 非常有趣。雖然我更擔心沙鼠。 – GenericTypeTea 2010-11-19 12:49:44

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("")); 
}); 

(未經測試)

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); 

樣品號牌:

V332LAE

薩mple結果:

這是一個簡短的,簡單的解決方案中,你也會,如果他們在你的文本存在需要標點字符圖像。既然你在使用號碼牌,那不應該是個問題。

感謝@Nick我介紹給http://dummyimage.com,我已經設置了我自己的一個演示:

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

+0

這太棒了! +1。雖然什麼可以使這*真的很酷也是將char設置爲每個圖像的alt屬性:) – alex 2010-11-19 12:47:00

0

事情是這樣的:

$(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

如果您需要轉換每個字符(或過濾掉非alnums)的$.map()可用於:

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

可以通過返回0來過濾字符在映射函數中。

( - with dummy images(沒有理由使用$.map(),雖然))