低效的 jQuery 使用
Inefficient jQuery usage
所以我有这个代码:
$( "#contact_seller .modal-content").addClass('has-error');
$( "#contact_seller span").empty();
$( "#contact_seller textarea" ).focus().after( "<span>Please be more precise about what You want to ask</span>" );
但Webstorm指出,这是低效的jQuery使用。尽管我阅读了很多内容,但我需要 ise .find() 以使代码更短。所以我在想它需要这样:
$( "#contact_seller")
.find('.modal-content').addClass('has-error')
.find('span').empty()
.find('textarea').focus().after( "<span>Please be more precise about what You want to ask</span>" );
但是很明显,这段代码无法正常工作(我假设find()选择每个下一项,但我希望它只选择父元素)。
应该如何正确编写此代码?
作为end
的替代品,您可以随时...
var container = $("#contact_seller");
container.find(".modal-content").addClass("has-error");
container.find("span").empty();
container.find("textarea").focus().after("<span>Please...</span>");
缺少
end()
调用。这应该有效:
$( "#contact_seller")
.find('.modal-content').addClass('has-error').end()
.find('span').empty().end()
.find('textarea').focus().after( "<span>Please be more precise about what You want to ask</span>" );
试着像下面这样写,
var elem = $( "#contact_seller");
elem.find(".modal-content").addClass('has-error');
elem.find("span").empty();
elem.find("textarea").focus().after( "<span>...</span>" );
您可以使用 .end()
,但此代码会更有效end()
因为它将执行反向查找,并且在您的上下文中是一个额外的负担。
相关文章:
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何在Angular2中使用jQuery插件
- 如何使用jQuery选择下拉列表的值
- 使用JQuery解析JSON嵌套数组
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何使用jquery处理php循环通过元素
- 使用jquery将mysql数据获取到新的表行中
- 如何使用jquery Validation验证Formspread
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 使用jQuery动态添加表并在其中动态添加行
- 使用jquery在单击时在单元格中输入值
- 如何使用jQuery在动画中期加速动画
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 使用JQuery的动态上下文菜单
- 使用jQuery以红色和黑色闪烁文本
- 如何使用jquery更改html中的背景颜色
- 使用jQuery从原始页面内容创建iframe