2 回答

TA贡献1802条经验 获得超5个赞
计算字符串中的空格,如果只有一个替换为<br>
$(document).ready(function(){
$.each($list, function(key, name){
if (name.match(/ /g).length === 1)
name = name.replace(" ", "<br>")
html = '<div class="col">\
<div>\
<span class="letter">'+ key +'</span>\
<div class="name">'+ name +'</div>\
</div>\
</div>';
$('.list').append(html);
});
});
或者只是编辑硬编码$list

TA贡献1831条经验 获得超10个赞
根据 Lawrence Cherone 的回答,它可以用 a 替换名称中第一次出现的空格字符<br>,这里有一个解决方案,<br>如果名称由 3 或 4 个单词组成,因此有 2或 3 个空格字符。为此,我使用了nth_occurrence()从这个答案中提取的函数,由 Marten找到字符串中字符的第 nreplaceAt()次出现,以及从这个答案中提取的函数用 Alnitak的字符串替换特定索引处的字符。不幸的是,堆栈片段不起作用,因此我在这个Fiddle创建了一个工作示例。
$list = {
"CM": "Classic Manicure",
"CU": "Clean Up",
"FCUS": "Face Clean Up Full Tool Set",
"FFW": "Full Face Waxing",
"FR": "Foot Reflexology",
"KM": "Kids Manicure",
"FCU": "Face Clean Up",
"GFTK": "Gel French Tool kit",
};
$(document).ready(function() {
function nth_occurrence(string, char, nth) {
var first_index = string.indexOf(char);
var length_up_to_first_index = first_index + 1;
if (nth == 1) {
return first_index;
} else {
var string_after_first_occurrence = string.slice(length_up_to_first_index);
var next_occurrence = nth_occurrence(string_after_first_occurrence, char, nth - 1);
if (next_occurrence === -1) {
return -1;
} else {
return length_up_to_first_index + next_occurrence;
}
}
}
function replaceAt(s, n, t) {
return s.substring(0, n) + t + s.substring(n + 1);
}
$.each($list, function(key, name) {
if (name.match(/ /g).length === 1) {
name = name.replace(" ", "<br>")
} else if (name.match(/ /g).length === 2 || name.match(/ /g).length === 3) {
let second = nth_occurrence(name, " ", 2)
name = replaceAt(name, second, "<br>");
}
html = '<div class="col">\
<div>\
<span class="letter">' + key + '</span>\
<div class="name">' + name + '</div>\
</div>\
</div>';
$('.list').append(html);
});
});
添加回答
举报