【问题标题】:jQuery - Element selecting and ready() method, avoiding duplicated selectorsjQuery - 元素选择和 ready() 方法,避免重复的选择器
【发布时间】:2019-06-14 11:39:30
【问题描述】:

我正在尝试处理 jQuery 中的重复选择器。让我们使用这个示例,其中脚本在 <head> 中加载,因此它在 DOM 结构之前加载。

var element = $(".element"); //Here, the element is null or length is 0

//element is null so ready method is not executing
element.ready(function(){

});

现在,如果我按以下方式选择元素,我将复制选择器:

$(".element").ready(function(){
   . . .
   someFunction();
   . . .
});

function someFunction(){
   $(".element").method(); //Selector duplicated here because I already used it in ready() method.
}

如何使用上述示例避免选择器重复?

【问题讨论】:

  • 从未见过$(".element").ready(function(){ 语法从我在jquery 文档中看到的你有ether 文档或img 作为准备函数api.jquery.com/ready的元素
  • @madalinivascu 同意,不确定这可能是一个库还是一个自定义方法......

标签: javascript jquery methods selector


【解决方案1】:

不确定我是否正确,但可以尝试将元素传递给函数?

$(".element").ready(function(){
   someFunction($(this));
});

function someFunction($el){
   $el.method();
}

另外,正如@madalinivascu 所说,元素中的ready 方法非常不寻常,它是您的库还是自定义方法?

【讨论】:

  • ready() 是一个 jQuery 方法:api.jquery.com/ready。但是,在 DOM 元素上调用它是多余的;它应该只在document 上调用,因为鉴于 OP 的页面结构,此示例将不起作用
  • @RoryMcCrossan 我知道。我之所以这么回答,是因为除了ready 部分之外,OP 的问题是关于重用所选元素。
  • 首先我回答了你在评论中所说的你不知道ready()函数是什么的问题; ... not sure if that could be a lib or a custom method,你的最后一句话本身就是一个要求确认的问题。
  • @RoryMcCrossan 没关系,我明白你的意思,并不是要严厉。我已经回答了,因为我认为我的建议可能是 OP 想要的,但我不确定准备好的部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2019-05-21
  • 2015-01-17
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多