【问题标题】:What is the default context when using jQuery selector?使用 jQuery 选择器时的默认上下文是什么?
【发布时间】:2014-07-29 19:00:39
【问题描述】:

根据the jQuery DOC,选择元素时可以指定context

我通常在发出 AJAX 请求时使用它:

$.ajax({
    type: "GET",
    url: url,
    success: function(data){
        var id = $("#my_id", data);
        }
    })

如果我想在当前 DOM 中搜索,我只写$("#my_id")

现在,我想创建一个以context 为参数的函数,以便通过 DOM 或 AJAX 响应进行搜索。

function my_func(context) {
    var id = $("#my_id", context);
}

如果我想在当前 DOM 中搜索,我应该传递什么 context

【问题讨论】:

  • 为什么不只包含通过的上下文?
  • @Mathletics 在这种情况下,每当我使用 jQuery 时,我都应该在方法的主体中指定 if (argument) {$("#my_id", argument)} else {$("#my_id")}...
  • 如果您检查源代码,您会发现 jQuery 使用 document 作为默认上下文。
  • 更好的默认值是undefined,否则它会使用$(document).find('#myid') 而不是$('#myid')

标签: javascript jquery ajax dom


【解决方案1】:

如果你在谈论传递全局 DOM 上下文,那么你不应该传递任何东西。 context 将默认为 undefined 并传递给 jQuery 选择器(如果您刚刚调用 $("#my_id"),它将具有相同的值)

【讨论】:

  • "context 将默认为 undefined" -- 来源?是undefined 还是document
  • 不传递参数时的标准 JS 行为。该值默认为undefined。这意味着 jQuery 将默认使用 document 上下文(如果你不传递上下文,它会这样做)stackoverflow.com/questions/11107823/…
  • 当 jQuery 使用 context 时,它仍然是 undefined 吗?我认为这里真正的问题是:“jQuery 构造函数 使用 作为默认值是什么?
猜你喜欢
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多