您好我编写了一个用于更改表格单元格中文本的函数,该表格显示了团队成员但不是可读格式,因此我必须将字符串输出转换为可读格式。
这一切都很好但是我想知道是否有人可以帮助我重新考虑这个功能,因为它看起来很粗糙?
Jquery代码:
$(".membersName").each(function() {
var memberName = $(this).text();
var splitmemberName = memberName.split("=");
var finalNameSplit = splitmemberName[1].split(",");
$(this).empty();
$(this).append(finalNameSplit[0]);
});
任何帮助或提示将不胜感激。提前干杯
答案 0 :(得分:3)
对我来说很好看!您可以使用RegExp
代替,但我不能说更好。虽然这个:
$(this).empty();
$(this).append(finalNameSplit[0]);
可以缩短到这一点:
$(this).empty().append(finalNameSplit[0]);
答案 1 :(得分:2)
试试这个:http://jsfiddle.net/C9fMN/
$(".membersName").each(function() {
$(this).text(function(i,txt) {
return txt.split("=")[1].split(",")[0];
});
});
无需以这种方式使用.empty()
,因为您要完全替换文字。
事实上,通过这种方式,你甚至不需要调用.each()
:
$('.membersName').text(function(i,txt) {
return txt.split("=")[1].split(",")[0];
});
答案 2 :(得分:1)
只有一个:
$(".membersName").html(function(i, old) {
var eqpos = old.indexOf("=");
return old.substring(eqpos+1, old.indexOf(",", eqpos));
});
答案 3 :(得分:0)
链接可以帮助你一些地方,例如:
$(this).empty();
$(this).append(finalNameSplit[0]);
可以成为
$(this).empty().append(finalNameSplit[0]);
另外,尝试缓存$(this)
以提高性能,即
var $this = $(this);
从技术上讲,你可以将这些线合并在一起:
var memberName = $(this).text();
var splitmemberName = memberName.split("=");
var finalNameSplit = splitmemberName[1].split(",");
像这样:
var finalNameSplit = $(this).text().split("=")[1].split(",");
这意味着您可以在一行代码中编写它:
$(this).empty().append($(this).text().split("=")[1].split(",")[0]);
虽然你的版本更具可读性。