一个简短的javasctipt / jquery脚本,用于匹配/分配文本字符串值和html实体unicode值,例如。 '&安培;#58880'。
例如,从

(显示篮球的图标)
(显示网球的图标)
(显示板球的图标)
(显示排球的图标)
(显示基球的图标)html会是这样的(注意:它们可以随时以任何顺序出现。)
<p><span data-icon=""></span>Volleyball</p>
<p><span data-icon=""></span>Baseball</p>
<p><span data-icon=""></span>Cricket</p>
<p><span data-icon=""></span>Tennis</p>
<p><span data-icon=""></span>Basketball</p>
需要一种方法,以便每当文本字符串值出现时(例如篮球),它就知道动态插入'data-icon'并知道它的数据图标值是什么(例如'&amp;#58880')等
答案 0 :(得分:1)
你可以这样做。
这是一个小提琴供您参考: http://jsfiddle.net/47kj4zzu/1/
<强> HTML 强>
<div id="sports">
<p>Volleyball</p>
<p>Baseball</p>
<p>Cricket</p>
<p>Tennis</p>
<p>Basketball</p>
</div>
<强> JQuery的/使用Javascript 强>
var icons = [
{
match: 'volleyball',
unicode: ''
},
{
match: 'baseball',
unicode: ''
},
{
match: 'cricket',
unicode: ''
},
{
match: 'tennis',
unicode: ''
},
{
match: 'basketball',
unicode: ''
}
];
var $sports = $('#sports').children('p');
$sports.each(function(){
var $ele = $(this);
$.each(icons, function(){
if($ele.text().toLowerCase().indexOf(this.match.toLowerCase()) >= 0)
{
$ele.prepend('<span data-icon="'+this.unicode+'"></span>');
return false;
}
});
});
答案 1 :(得分:0)
创建一个将游戏类型映射到html实体代码的对象。
为了演示的目的,我在示例中包含了一个select标签,允许您选择游戏类型并查看插入div的值。
var obj = {'volleyball':'','baseball':'','cricket':'','tennis':'','basketball':''};
$('#sel').change(function(){
var tmp = $(this).val();
var tmp2 = tmp.toLowerCase();
$('#result').append('<p><span data-icon="'+obj[tmp2]+'"></span>' +tmp+ '</p>');
});
这是代码的核心:
var = '<p><span data-icon="'+obj[tmp2]+'"></span>' +tmp+ '</p>';