Javascript 如何在jQuery中保持干燥?

Javascript 如何在jQuery中保持干燥?,javascript,jquery,method-chaining,Javascript,Jquery,Method Chaining,在jQuery中,有没有一种方法可以保存常用的函数链以供以后引用,从而保持编码风格 例如,在下面的代码中,我想引用链.closest('.row').closest('div').remove(): 大概是这样的: var bye = ".closest('.row').closest('div').remove()"; $('#search-results .row .unsafe').bye(); $('#search-results .warnings').bye(); $('#sear

在jQuery中,有没有一种方法可以保存常用的函数链以供以后引用,从而保持编码风格

例如,在下面的代码中,我想引用链
.closest('.row').closest('div').remove()

大概是这样的:

var bye = ".closest('.row').closest('div').remove()";

$('#search-results .row .unsafe').bye();
$('#search-results .warnings').bye();
$('#search-results .textresults1:contains("Endpoint offline!")').bye();
// more...
我的问题只涉及以这种方式重用函数链,即jQuery是否有一种执行函数链的方法,该函数链存储为变量中的字符串。我很感激任何代码示例都可以被重写以避免这种需要,但这是一个不同的问题。我认为可能有相当多的用例用于存储像这样的常用功能链,例如复杂的样式/动画例程


[我知道第一个选择器可以修改为包含所有后续选择器,但为了提高性能,它是这样做的。
#搜索结果
包含成千上万个
,每个都有十几个元素。这样模糊搜索最后完成(即与
:contains
匹配的松散文本),之前的选择器已经删除了几千行。此外,此特定代码取自我正在编写的Greasemonkey用户脚本,因此我无法直接从源服务器端删除这些虚假结果-这不是我的服务器/网站]

通过使用简单的插件,您可以像
.bye()

(函数($){
$.fn.bye=函数(){
$(this.remove();
//$(this).closest('.row').closest('div').remove();
}
}(jQuery))

点击
$(文档).ready(函数(){
$('button').bye();
});

基本封装将完美实现:

function removeStuff(selector) {
  return $(selector)
    .closest('.row')
    .closest('div')
    .remove();
}

从的“现在已删除的评论”中导出。

@kaido这是一种非常主观的方法,而不是答案,而这个答案正好提供了原始问题所要求的内容。@tadman我没有说任何与你的陈述相反的话。是的,我确实批评了这种方法,是的,这个答案确实回答了问题,是的,对于暴露的问题来说,这是一种非常糟糕的方法。请注意,异教徒猴子给出的方法避免了这个全球镜地狱,因此实际上可以回答手头的问题,而不提供射击他们的脚所需的枪。@kaido如果你对最初的方法有什么要说的,你应该对问题本身进行评论。穆罕默德回答的是提出的问题,而不是应该提出的问题。@tadman Nope。问题是如何拧紧螺丝,我想用锤子,但不知道在哪里可以找到。正确答案是“使用螺丝刀”。现在,有一个答案“这是你的锤子”并没有什么坏处,但重要的是至少有一条评论说这不是当前问题的解决方案。
function removeStuff(selector) {
  return $(selector)
    .closest('.row')
    .closest('div')
    .remove();
}