2010-11-19 117 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(),虽然))