【发布时间】:2011-08-27 11:17:31
【问题描述】:
var icons = $(".IT_Icon").text().trim().split(",");
在上面,逗号之间的元素文本部分被分解并存储在一个数组中。如果我想对源列表中的项目进行包装或附加或做任何事情,我该怎么做?
例如:
之前:
[cat, dog, mouse, elephant, lion, bird]
之后:
<img src="cat"/>, <img src="dog"/>, <img src="mouse"/>, <img src="elephant"/>, <img src="lion"/>, <img src="bird"/>
再想一想,难道我不能有一个正则表达式来查找列表的“部分”,逗号之间是什么,并用我需要的任何东西来补充它?是包装还是替换?
回答
这就是我最终的结果:
$(".IT_badge").each(function () {
var badges = $(this).text().trim().split(",");
$(this).html("");
for (i = 0; badges.length > i; i++) {
$(this).append($("<img/>").attr("src", 'IT_Badges/' + badges[i] + '.png'));
if (!(badges.length === i+1)) {
$(this).append(", ");
}
}
});
【问题讨论】:
-
包装一个项目是什么意思?
-
有多种方法可以做到这一点,但更多信息会很有用。你如何决定更换哪一个?在示例中,是否将“大象”替换为“GUESS”,是否将第 4 个条目替换为 GUESS?等等。然后替换后该怎么办?是否只是为了更新 span 中的文本?
-
您是否要替换 span 的文本?
-
@hunter @Felix Kling - 我最终想将逗号列表中的单词“转换”为图标,因此我想将 img scr="' + word + ' 中的单词“包装” "/>.
标签: javascript jquery regex arrays split