首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery美化jquery链

jquery美化jquery链
EN

Stack Overflow用户
提问于 2011-06-20 22:30:32
回答 2查看 486关注 0票数 3

我正在通过命令行(http://jsbeautifier.org/)使用my美化器,它的工作非常出色,除了它能处理我的较长的jquery链式语句之外:

代码语言:javascript
运行
复制
$('#foo').closest('div')
         .closest('input')
         .val();

至:

代码语言:javascript
运行
复制
$('#foo').closest('div').closest('input').val();

显然,这有点简单,但有时链接会变得有点长,或者它是一个if语句,就像这样:

代码语言:javascript
运行
复制
if ((foo === bar) && 
    c > 5 && 
    d != 2)

它最终的结果是:

代码语言:javascript
运行
复制
if ((foo === bar) && c > 5 && d != 2)

有没有人经历过这种情况并修改了美化器,或者知道一个变通方法或替代解析器(我使用VIM,所以我不喜欢使用像aptana这样的IDE解决方案,除非它可以通过命令行调用)?或者我只需要调整我的代码来避免长的if条件(如果是这样的话,最好的方法是把它抽象成可读性更好的东西)?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-09-21 16:27:18

长if条件很难回读和调试。您可以尝试执行以下操作:

代码语言:javascript
运行
复制
var matchesBar = (foo === bar),
    greaterThenFive = (c > 5),
    notTwo = (d != 2);

if (matchesBar && greaterThenFive && notTwo) {
    // Do stuff
}

如果您为变量指定有意义的名称,就可以分离出真实部分和它们的比较,这样if语句就更容易阅读了。

它不会直接回答您的问题re: jsbeautifier,但如果没有其他解决方法,它可能有助于提高易读性。

票数 0
EN

Stack Overflow用户

发布于 2014-07-02 22:41:18

您可以在命令行中传递-B--break-chained-methods来保留这些换行符。

对于if和其他语句,一旦达到限制,请使用-w--wrap-line-length来打破它们。

source -B, --break-chained-methods Break chained method calls across subsequent lines -w, --wrap-line-length Maximum characters per line (0 disables) [250]

除此之外,根据您的代码,最好不要有很长的if或任何语句。我个人尽量限制在80个字符以内,但有时不得不接受更长的语句(特别是在处理遗留项目时)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6412822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档