重构每个语句

时间:2010-07-14 13:17:42

标签: jquery

您好我编写了一个用于更改表格单元格中文本的函数,该表格显示了团队成员但不是可读格式,因此我必须将字符串输出转换为可读格式。

这一切都很好但是我想知道是否有人可以帮助我重新考虑这个功能,因为它看起来很粗糙?

Jquery代码:

$(".membersName").each(function() {

   var memberName = $(this).text();
   var splitmemberName = memberName.split("=");
   var finalNameSplit = splitmemberName[1].split(",");
   $(this).empty();
   $(this).append(finalNameSplit[0]);


});

任何帮助或提示将不胜感激。提前干杯

4 个答案:

答案 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()

http://jsfiddle.net/C9fMN/1/

$('.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]);

虽然你的版本更具可读性。