如何使用Jquery替换DIV中包含的字符并替换为图像?

时间:2010-11-19 11:23:53

标签: jquery

我想知道是否有办法替换div.number-plate中的纯文本,每个角色的图像(逐个)?我正在使用JQuery

非常感谢任何帮助,谢谢

5 个答案:

答案 0 :(得分:10)

答案 1 :(得分: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

示例结果:

这是一个简短的解决方案,如果标点字符存在于文本中,您还需要使用标点字符的图像。由于你正在使用车牌,这应该不是问题。

感谢@Nick向我介绍http://dummyimage.com,我已经设置了自己的演示:

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

答案 2 :(得分: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(""));
});

(未测试的)

答案 3 :(得分: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);           
});

答案 4 :(得分: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('');
});

可以通过在映射函数中返回NULL来过滤掉字符。

Demo - with dummy images(无理由使用$.map()))