如何在html消息中替换每个<img>
标记,并将unicode值存储为自定义属性。
示例消息:
<img data-uni-val="😃" src="path/to/img1.png" class="emoji"/>hello,
<br /> <img data-uni-val="F604;" src="path/to/img2.png" class="emoji"/>
我需要将每个表情符号<img>
替换为其存储为自定义属性的unicode值。
$('<div />')
.html(chatText).find('img.emoji')
.replaceWith('someval').end().html()
使用上面的代码我可以找到并用字符串替换每个img,但不能用data-uni-val
替换。
我试过了:
$('<div />').html(chatText).find('img.emoji')
.replaceWith($(this)
.data('data-uni-val')).end().html()
有没有简单的方法可以解决这个问题?
答案 0 :(得分:3)
您的代码的主要问题是应使用for (var i = 0; i < f.legs.length; i++) {
routeSegment += 1;
summaryPanel.innerHTML += "<b>Route Segment: " + routeSegment + "</b><br />";
summaryPanel.innerHTML += f.legs[i].distance.text + "<br /><br />";
l += f.legs[i].distance.text
dis.push(l);
callback( dis );
}
function callback(result) {
// code that depends on 'result'
alert(result);
}
访问属性final DateFormat format = new SimpleDateFormat("MMMM dd");
final Date d = format.parse("August 27");
。
此外,您只需使用data-uni-val
即可执行转换。
$(this).data('uni-val')
&#13;
.replaceWith(fn)
&#13;
答案 1 :(得分:2)
在jQuery中,.data()
函数使用与您在元素标记中使用的名称不同的“名称”。这是一个没有'数据'且没有连字符的camelCase。
尝试.data('uniVal')
答案 2 :(得分:1)
$('.emoji').each(function(){
var str = $(this).attr('data-uni-val');
$(str).insertAfter($(this));
$(this).remove();
});
答案 3 :(得分:0)
$("div img").each(function(){
$(this).removeClass('emoji').addClass($(this).attr('data-uni-val'));
});
答案 4 :(得分:0)
看看这是不是你想要的:
jQuery('.emoji').each(function(){
var str = jQuery(this).attr('data-uni-val');
jQuery(this).replaceWith(str);
});